我有一个名为distance的函数我希望在标量值函数中定义它以通过linq调用它 如果首先要通过EF4.1代码做到这一点?
答案 0 :(得分:1)
没有。代码优先被设计为“代码优先”=你将创建一个代码,它将创建一个没有数据库逻辑的数据库(没有视图,存储过程,触发器或函数)。因此,它完全缺少用于映射数据库逻辑(如函数和存储过程)的功能。如果要在LINQ中使用它,则必须放弃code-first / fluent-API并开始使用支持EDMX的EDMX。
答案 1 :(得分:0)
使用ExecuteSqlCommand和输出参数应该为标量存储过程执行技巧
var outParam = new SqlParameter("overHours", SqlDbType.Int);
outParam.Direction = ParameterDirection.Output;
var data = context.Database.ExecuteSqlCommand("dbo.sp_getNumberJobs @overHours OUT", outParam);
int numJobs = (int)outParam.Value;