Я использую динамический способ включения «родительских свойств», когда я извлекаю объекты из db. Однако, поскольку это проверяет, является ли свойство типом значения (или строкой) или ienumerable чего-либо (за исключением тех), он также будет включать объекты, которые определены как типы комплексов. Это приведет к исключению.Entity Framework 4.3 POCO Include on Complex Types throws exception
Можно ли проверить, был ли объект определен как сложный тип?
Пожалуйста, смотрите этот пример кода:
public IEnumerable<object> LookupExtent(Type type)
{
var set = Set(type);
DbQuery q = null;
foreach (var prop in type.GetParentProperties())
{
if (q == null)
q = set.Include(prop.Name);
else
q = q.Include(prop.Name);
}
return q.ToObjectArray();
}
PS: Да я знаю, что это не сработает, если у меня нет родительских свойств ...
Я понимаю ваши проблемы и то, что я пытаюсь достичь, не является «случаем использования по умолчанию». Я буду использовать этот автомат только в особых случаях. Случай по умолчанию не включает никаких родительских или дочерних свойств, и загрузка этих данных должна быть явно указана. Я дам ваш код попробовать и пометить ваш ответ, когда вернусь в офис (в следующий понедельник), поэтому вам придется немного подождать ;-) – UrbanEsc