将复杂类型映射到实体框架中的SqlQuery

rob*_*sta 7 c# entity-framework ef-code-first

我使用SqlQuery调用存储过程,结果应该是对象的图形,即

public class Person
 {
   public int Id{get;set;}
   public string FullName {get;set;}
   public Address HomeAddress {get;set;}
   public Vehicle PrivateVehicle {get;set;}
 }
Run Code Online (Sandbox Code Playgroud)

但是SqlQuery不会映射地址和车辆.它只将列名映射到属性.

有没有解决这个问题?我怎么做映射?

我找到了这个:

..你不能做的是返回对象的图形,例如包含复杂类型属性的实体.

Jon*_*ams 5

实体框架(无论如何最多 6 个)不支持将原始 SqlQueries 映射到对象图,仅作为简单实体。

您可以使用标准 LINQ 以及它们之间的标准实体框架引用映射,并使用 Includes 或您需要的任何其他内容。

但是,如果标准 LINQ to EF 无法工作,因为您的 SqlQuery 使用 SQL 函数或存储过程或其他东西,那么您就不走运了。

PS:发布您的 SQL 查询可能会对将来有所帮助,因此答案可以更具体地针对您的问题。