EF 6.0中缺少DbSet <entity> .Load()函数

Has*_*tar 27 .net c# wpf entity-framework-6

我试图访问该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");
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是对数据库的实际调用:

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也请任何人指出ToList()和之间的区别Load()

小智 28

我发现我需要添加:

using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)


小智 5

此外,除了System.Data.Entity之外,还必须添加System.Linq命名空间以及System.Windows.


Paw*_*wel 1

在 EF6 中,包含扩展方法的类从 DbQueryExtensions 重命名为 QueryableExtensions,但该.Load()方法仍然存在。如果您不直接调用此扩展方法,则重命名对您来说应该不重要。