DbSet<EntityClass>.Load()
エンティティをロードする関数にアクセスしようとしています。この関数は EF 6.0 には存在しません。ある調査の結果、これは EF 拡張ライブラリで定義されている拡張メソッドの一部であることがわかりました。
EF 6.0 拡張ライブラリの参照 NuGet パッケージを取得しましたが、サポートされなくなったようです。を呼び出してその関数の代替を実行しようとしましたが、.ToList()
処理時にこのメソッドは内部例外を返します。
({"The column name is not valid. [ Node name (if any) = Extent1,Column name = HasErrors ]"} )
データベーステーブルに対してマッピングクラスを再確認しましたが、問題ないようです。何が欠けているのかわからない。以下は私のマッピングクラスのコードです:
internal class CustomerMapping : EntityTypeConfiguration<Customer>
{
public CustomerMapping()
{
this.HasKey(t => t.Id);
this.Property(t => t.Id).HasColumnName("CUSTOMER_ID");
this.Property(t => t.Name).HasMaxLength(30).HasColumnName("NAME");
this.Property(t => t.Email).HasMaxLength(30).HasColumnName("EMAIL");
this.Property(t => t.PhoneNo).HasMaxLength(100).HasColumnName("PHONE_NO");
this.Property(t => t.MobileNo).HasMaxLength(100).HasColumnName("MOBILE_NO");
this.Property(t => t.Address1).HasMaxLength(100).HasColumnName("ADDRESS1");
this.Property(t => t.Address2).HasMaxLength(100).HasColumnName("ADDRESS2");
this.Property(t => t.CustomerType).HasMaxLength(100).HasColumnName("CUSTOMER_TYPE");
this.Property(t => t.Notes).HasMaxLength(100).HasColumnName("NOTES");
this.ToTable("CUSTOMERS");
}
}
以下は、データベースに対して行われる実際の呼び出しです。
internal class EntityService : IEntityService
{
private ObservableCollection<Customer> customers;
public DBContextManager DataBaseContext { get; set; }
public ObservableCollection<Customer> Customers
{
get
{
if (customers == null && DataBaseContext != null)
{
// DataBaseContext.Set<Customer>().Load()
DataBaseContext.Set<Customer>().ToList();
customers = DataBaseContext.Set<Customer>().Local;
}
return customers;
}
}
}
また、 と の違いを教えてToList()
くださいLoad()
。