0

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

4

1 に答える 1