私はエンティティフレームワークを使用してSQLビューを取得しています。このビューは、結合された2つの既存のオブジェクトを表します。私は、これを行う最善の方法はオブジェクトが他のオブジェクトを継承することになると考えました。EFで継承したクラスを持つエンティティにDBテーブルからデータを取り込む方法は?
私はこのエラーを取得しています:ここで
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Class1>()
.ToTable("mySQLView", "TEST")
.HasKey(r => new { r.Property1 });
modelBuilder.Entity<Class1>().Property(r => r.Property1).HasColumnName("Key1");
modelBuilder.Entity<Class1>().Property(r => r.Property2).HasColumnName("Column2");
modelBuilder.Entity<Class1>().Property(r => r.Property3).HasColumnName("Column3");
modelBuilder.Entity<Class1>().Property(r => r.Property4).HasColumnName("Column4");
}
は私の二つのクラスです:
public class Class1 : Class2
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
public class Class2
{
public string Property3 { get; set; }
public string Property4 { get; set; }
}
クラス2は、によって利用されている。ここ
System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'Discriminator'.
は、私がセットアップ持っているものです別のDB呼び出し。 Class1は、これらの呼び出しの1つでのみ使用されています。私のクラスを構成する方法やEFを正しく設定する方法についての助けがあれば、大歓迎です!
これらの方法は有用であり、私は解決策に近づけました。私のチームと話をした後、私たちはプロパティを複製することにしました。それらの構造と命名規則はまったく同じですが、2つのビューは別々のデータベースにある2つの別々のデータセットです。 –