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が含まない、およびThemeContractEditor