エンティティを読み込むためにDbSet<EntityClass>.Load()
関数にアクセスしようとしています。この関数はEF 6.0では存在しません。特定の調査の結果、EF拡張ライブラリで定義されている拡張メソッドの一部であることがわかりました。DbSet <entity> EF 6.0で.Load()関数がありません
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()
との違いを指摘することができますしてください?
MSDNによると、[ 'Load'](http://msdn.microsoft.com/en-us/library/system.data.entity.dbextensions .load%28v = 10.3%29.aspx) "は、実際にリストを作成せずに' ToList'を呼び出すのと同じです。これは 'IQueryable'の拡張であり、' System.Data.Entity'名前空間にあります。そのために 'using'を追加してください。 – UIlrvnd
はい私はその名前空間を使用しています。しかし、どのように私は不平を言われて見つからない列名をデバッグすることができますか? –
ああ、ToList()は 'Local'を埋めるものではありません。 – UIlrvnd