是否可以将存储过程列映射回EF4中的实体?

本文关键字:EF4 实体 映射 存储过程 是否 | 更新日期: 2023-09-27 18:06:38

我的数据库中有一个存储过程,它为某些用户返回一组数据。当然,userId将作为该集合的一部分返回。我已经将存储过程导入到实体框架模型中,并创建了一个新的复杂类型来存储结果。

List<GetUserData_Result> x = context.GetUserData().ToList();
List<int> userids = x.Select(u => u.UserId);

是否有办法将我的复杂类型中的userId与已经存在的User实体关联起来?这将允许我说诸如result.User.EmailAddress之类的东西,即使我的存储过程没有返回电子邮件地址。在MSDN上进行了大量的研究表明,这可能是可以使用AssociationAttribute类的,但我到目前为止还无法找到一个例子。

是否可以将存储过程列映射回EF4中的实体?

这将是一个很好的功能,但目前的版本没有提供这个功能。复杂类型不能有导航属性(所以它不能指向实体)。这意味着EF不会为您做这些,但您可以拥有自己的属性,该属性将以某种方式获取具有该Id的用户并返回它-最有可能的是,这将使您的复杂类型依赖于ObjectContext,这是不好的。

AssociationAttribute不被Entity框架使用。它被用于WCF RIA服务。