实体框架 - 您是否可以将导入的存储过程的结果类型映射到自定义实体类型?

时间:2008-09-18 04:13:17

标签: c# linq-to-sql entity-framework orm

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这里有几个选择。

  1. 您可以创建“复杂类型”并将其映射到过程结果。但是,您必须在EDMX中执行此操作;它没有得到设计师的支持。有关详细信息,请阅读this article。请注意,复杂类型不是本身的实体类型,因此这可能适合您的需求,也可能不适合您。但您可以找到stored procs which use "Address"的示例。

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