0
我延長我的EF上下文inlcude Mission
實體有RequiredAttribute
的所有屬性:是否可以在上下文中僅包含必需的屬性?
public static IQueryable<Mission> MissionWithRequired(this IDbContext context)
{
return context.Missions
.Include(mission => mission.Theme)
.Include(mission => mission.Contact)
.Include(mission => mission.Editor);
}
其正常工作。
重構它的想法 - 使其不僅可以與Missions
一起使用,還可以與其他實體一起使用。
我的第一步是使用Reflection
來讀取標記爲RequiredAttribute
的屬性。但它不工作:
public static IQueryable<Mission> MissionWithRequired(this IOrgDatenbankContext context)
{
var requiredProperties = typeof(Mission).GetProperties()
.Where(property => Attribute.IsDefined(property, typeof(RequiredAttribute)));
foreach (var requiredProperty in requiredProperties)
{
context.Missions.Include(requiredProperty.Name);
}
return context.Missions;
}
的context
包含Missions
但不Theme
,Contract
和Editor
thnaks for you post。將信息存儲在局部變量中會達到什麼目的? – MikroDel
您應該獲得所有'Include'的**複合**結果。 'Include()'本身不做任何事情,它會返回'IQueryable'的修改實例。在你的第一個代碼示例中,你調用'Include',將修改過的'IQueryable'傳遞給第二個'Include'等流暢的API。在第二個代碼示例中,您不會對從調用返回到Include的修改的'IQueryable'執行任何操作。 – qujck
upvote =)我會在接下來的幾天嘗試它 - 導致代碼的其他部分也應該更新..我會在後面給我反饋。 – MikroDel