EF4 如何调用标量 UDF
本文关键字:标量 UDF 调用 何调用 EF4 | 更新日期: 2023-09-27 17:56:01
我正在尝试从实体框架调用SQL Server中的标量UDF。它显示在模型浏览器的"商店"部分。
任何帮助不胜感激。
//In the EDMX File it shows up in the storage model
<Function Name="GetPerformanceIndicator" ReturnType="float" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="true" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
<Parameter Name="inv" Type="int" Mode="In" />
<Parameter Name="fund" Type="int" Mode="In" />
<Parameter Name="curr" Type="int" Mode="In" />
</Function>
</Schema></edmx:StorageModels>
// In the Code I am trying to call as mentioned in the Forum http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/92a3214b-a662-44d5-bed3-11eae9926be6/
var query = _context.CreateQuery<double>("IRISModel.Store.GetPerformanceIndicator(@curr, @fund, @inv)",
new System.Data.Objects.ObjectParameter("inv", invfund.Investors.Investor_ID),
new System.Data.Objects.ObjectParameter("fund", invfund.Funds.Fund_ID),
new System.Data.Objects.ObjectParameter("curr", invfund.Currency.Currency_ID));
var x2 = query.Execute(System.Data.Objects.MergeOption.NoTracking);
x = x2.FirstOrDefault(); //<<-- This always return zero
你试过这种方法吗? 请注意,使用 [EdmFunction]
属性提供与 EF 的挂钩,以便调用自定义函数。