是否可以在实体框架的模型定义函数中定义子查询?我们有一种情况,我们有一个客户对象,该对象在另一个表中具有名称历史记录。我们希望返回最新的名称作为该客户对象的一部分。
模型定义的函数可能如下所示:
<Function Name="CurrentName" ReturnType="Edm.String">
<Parameter Name="e" Type="Model.Customer"/>
<DefiningExpression>
(select top(1) n.LegalName from Entities.CustomerNames as n order by n.EffectiveDate Desc )
</DefiningExpression>
</Function>
不幸的是,上述方法不起作用。我们得到一个错误:
在函数 'SNCCModel.CurrentLegalName' 的声明中指定的结果类型 'Edm.String' 与结果类型 'Transient.collection[Transient.rowtype(LEGAL_NAME,Edm.String(Nullable=True,DefaultValue=,MaxLength= 512,Unicode=False,FixedLength=False))]' 函数定义
有什么建议么?这应该工作吗?抱歉,重构我们的数据模型以将最新的名称存储在客户表中是不可行的。
谢谢,瑞克