如何在Entity Framework Code-first中使用现有存储过程和函数

问题描述 投票:4回答:1

我正在使用EntityFramework.Functions库,当我们先使用Entity Framework代码时,该库用于调用存储过程或函数。

我有一个存储过程返回一个可为空的long值。但我收到一个错误:

这些函数在我的DataContext类中声明:

[Function(FunctionType.StoredProcedure, "Sp_name", Schema = "acnt")] public virtual ObjectResult<Nullable<long>> AddRecord_SP(string i_Params) { var i_ParamsParameter = i_Params != null ? new ObjectParameter("I_Params", i_Params) : new ObjectParameter("I_Params", typeof(string)); return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<long>>("Sp_name", i_ParamsParameter); }

c# asp.net-mvc entity-framework entity-framework-4 entity-framework-6
1个回答
0
投票
据我所知,存储过程实际上无法指定参数不可为空。

也许您可以尝试指定返回参数。

[return: Parameter(DbType = "")]

下面是您可以参考的我的项目中的示例代码。

[Function(FunctionType.StoredProcedure, "GetTop100", Schema = "biz")] public IQueryable<GetTop100Emp> GetTop100EmpList(long? FKTenant, int IsFilter) { var parameters = new ObjectParameter[] { new ObjectParameter("FKTenant", FKTenant), new ObjectParameter("IsFilter", IsFilter), }; return this.ObjectContext.ExecuteFunction<GetTop100Emp>("GetTop100", parameters).AsQueryable<GetTop100Emp>();

© www.soinside.com 2019 - 2024. All rights reserved.