关于c#:Entity Framework-您可以将导入的存储过程的结果类型映射到自定义实体类型吗?

关于c#:Entity Framework-您可以将导入的存储过程的结果类型映射到自定义实体类型吗?

Entity Framework - Can you map the result type of an imported stored procedure to a custom entity type?

我已经在一个单独的dll中拥有一个实体模型,其中包含我需要使用的各种对象。我真的不想使用EF设计器来创建或复制实体。相反,我想对其进行配置,以便在我调用存储过程时,它将某些列映射到特定的属性。

我知道您可以使用LinqToSql中的自定义DataContext对此做非常非常的事情。问题是您不能将列分配给复杂的属性类型。例如:我可能返回了包含用户地址的列。我想将用户的地址详细信息存储在作为User对象属性的Address对象中。因此,列STREET应该映射到User.Address.Street。

有什么想法吗?


这里有两个选项。

  • 您可以创建"复杂类型"并将其映射到过程结果。但是,您必须在EDMX中执行此操作。设计师不支持它。阅读本文以了解详细信息。请注意,复杂类型本身不是实体类型,因此这可能会也可能无法满足您的需求。但是您可以找到使用"地址"的存储过程的示例。

  • 您可以将过程的可见性更改为私有,然后在执行所需映射的任何手动编写的部分类文件中为其编写公共接口。或者只是重载该过程。


  • 推荐阅读