Как я могу получить список типов сущностей, которые являются частью модели, поэтому я могу проверить, что модель действительно работает с этим типом объекта?Получить все типы моделей
var dcx = new MyDbContext();
var lst = new List<Type>();
//populate the list here somehow
//...
foreach (var t in lst) {
var set = dcx.Set(t); //I'm trying to avoid an exception here
try {
var test = set.FirstOrDefault();
} catch (Exception ex) {
Console.WriteLine("{0} has an error", t);
}
}
NB: Это вполне возможно запросить dcx.Set(t)
даже если нет соответствующих DbSet
собственности на MyDbContext
; поэтому недостаточно повторять через отражение по свойствам MyDbContext
, чье общее определение типа возврата DbSet<T>
или даже IDbSet<T>
.
моделях или POCO которые будут разные типы, вы не можете создать список различных типов, можно только создать a Список того же типа, в данном случае список конкретного типа POCO или модели. Единственный вариант - List
@coderealm Я не уверен, что вы видите это правильно. Список - это «Список» типа «Тип», и оператор проходит через каждый «Тип» и получает кореспондентский «Набор» из контекста базы данных. Я не уверен, что вы можете избежать исключения здесь, хотя если вы переместите 'set = dcx.Set (t)' внутри try/catch (или поместите его в свой собственный try/catch), тогда вы можете хотя бы проглотить Это. В противном случае вы можете создать атрибут, который вы помещаете в классы моделей, которые вы можете запросить через отражение, чтобы получить все типы с этим атрибутом. –
@coderealm Я могу создать «Список', который содержит разные строки. 'System.Type' - это просто класс, содержащий информацию о заданном типе. –