デザイナー(VS2012)を使用してEF5エンティティモデルを作成し、コード生成アイテムとしてEF5DbContextジェネレーターを使用しました。
私のモデルには、別のエンティティ(抽象ではない)から派生したエンティティが含まれています。
したがって、ベースエンティティがBaseEntityと呼ばれ、派生エンティティがDerivedEntityであるとしましょう。
生成されたコンテキストクラスには、
Public DbSet<DerivedEntity> DerivedEntities { get; set; }
定義されています。
それだけ
Public DbSet<BaseEntity> BaseEntities { get; set; }
が定義されています。
これは正常ですか?はいの場合、linqで派生エンティティをクエリするにはどうすればよいですか?
私はこのようにクエリするのに慣れています:
using(var ctx = new EntityContainer)
{
var q = from e in ctx.DerivedEntities <-- but this is now not possible since it doesn't exist
select e;
return q.ToList();
}
返信ありがとうございます。
編集:
要求に応じて、生成されたクラスが投稿されました:
public partial class Scheduling
{
public int Id { get; set; }
public string Subject { get; set; }
public System.DateTime BeginDate { get; set; }
public System.DateTime EndDate { get; set; }
}
public partial class TeamScheduling : Scheduling
{
public int TeamId { get; set; }
public Nullable<int> AssignmentId { get; set; }
public virtual Team Team { get; set; }
public virtual Assignment Assignment { get; set; }
}
public partial class EntityContainer : DbContext
{
public EntityContainer()
: base("name=EntityContainer")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<Team> Teams { get; set; }
public DbSet<Location> Locations { get; set; }
public DbSet<Country> Countries { get; set; }
public DbSet<Assignment> Assignments { get; set; }
public DbSet<ProductType> ProductTypes { get; set; }
public DbSet<AssignmentPreference> AssignmentPreferences { get; set; }
public DbSet<Scheduling> Schedulings { get; set; }
}
ご覧のとおり、EntityContainerクラスには含まれていません
public DbSet<TeamScheduling> TeamSchedulings { get; set; }