我将实体框架 CodeFirst 与现有数据库一起使用。我有一个现有的存储过程,它从Customer_Info
具有 2 列的表中返回数据Customer_ID, Customer_Name
。我为这个实体创建了一个名为Customer
2 Properties的类CustomerID, CustomerName
。现在我试图通过这个存储过程获取数据。我在我的OnModelCreating
方法中定义了这样的映射。
modelBuilder.Entity<Customer>().ToTable("Customer_Info");
modelBuilder.Entity<Customer>().
Property(x => x.CustomerID).HasColumnName("Customer_ID");
这就是我试图从存储的过程中获取数据并将数据加载到实体中的方式。
public IList<Customer> GetCustomers()
{
return context.Database.SqlQuery<Customer>("exec GetCustomers @p0","NY")
.ToList();
}
但它没有用!这样说给我一个错误
数据读取器与指定的“客户”不兼容。类型的成员“CustomerID”在数据读取器中没有同名的对应列。
我该如何解决 ?如果我直接从表中读取,我的属性映射有效。