LINQ-to-SQL, используя таблицы динамически по имени - PullRequest
2 голосов
/ 03 марта 2011

Возможно ли это?или возможен любой обходной путь

string table="language";
var a=_db.table.FirstOrDefault();

Ответы [ 2 ]

2 голосов
/ 03 марта 2011

Сначала найдите тип, представленный именем, затем вызовите _db.GetTable<T>(), например:

string entityName = "language";

var entityType = FindType(entityName);

var result = _db.GetTable<entityType>().FirstOrDefault;

Вспомогательный метод FindType() получает тип через отражение:

public Type FindType(string typeName) {
    foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) {
        var result = assembly.GetType(typeName, false, true);
        if (result != null) { return result; }
    }
    throw new Exception("Selected type can't be found in loaded assemblies");
}
1 голос
/ 03 марта 2011

Если у вас есть тип объекта (а не просто строка), вы можете использовать _db.GetTable()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...