我为我的 EF 上下文提供了扩展,以包含所有具有的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
而且还可以与其他实体一起使用。
我的第一步是阅读标有RequiredAttribute
using的属性Reflection
。但它不起作用:
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