我有一个存储过程,它返回带有可能连接的数据选择,当我将它映射到 EF 时,正在为该存储过程创建一个复杂的类型模型。我可以为具有更多存储过程返回的列的另一个模型类更改此复杂类型吗?还是必须返回相同数量的列?
谢谢
例如,我有一个返回客户选择的存储过程:
CREATE PROCEDURE [dbo].[CustomersSelect]
AS
SELECT [CustomerID]
,[CompanyName]
,[ContactName]
,[ContactTitle]
,[Address]
,[City]
FROM [Northwind].[dbo].[Customers]
我在 EF 中导入这个存储过程,而不是使用特定的复杂类型,我想将它映射到 Customer 类
public partial class Customer
{
public Customer()
{
this.Orders = new HashSet<Order>();
}
public string CustomerID { get; set; }
public string CompanyName { get; set; }
public string ContactName { get; set; }
public string ContactTitle { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string Region { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public string Phone { get; set; }
public string Fax { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
在控制器中我尝试使用这个存储过程:
public ActionResult About()
{
var model = context.CustomersSelect();
return View(model);
}
当我运行此 About() 操作时,我收到此错误:
数据读取器与指定的“EfMvc4Model.Customer”不兼容。类型的成员“区域”在数据读取器中没有同名的对应列。
对此有什么帮助吗?
谢谢