C# 实体框架6在Select语句中存储函数
我在LINQ到SQL中有一个连接查询,如下所示:C# 实体框架6在Select语句中存储函数,c#,entity-framework,linq,C#,Entity Framework,Linq,我在LINQ到SQL中有一个连接查询,如下所示: from t in d.MainTable join t1 in Db.JoinedTable1 on t.jid1 equals t1.Id into t11 from t12 in t11.DefaultIfEmpty() join t2 in Db.JoinedTable2 on t.jid2 equals t2.Id into t21
from t in d.MainTable
join t1 in Db.JoinedTable1 on t.jid1 equals t1.Id into t11
from t12 in t11.DefaultIfEmpty()
join t2 in Db.JoinedTable2 on t.jid2 equals t2.Id into t21
from t22 in t21.DefaultIfEmpty()
select new Dto
{
Field1 = t.Field1,
Field11 = t12.Name,
Field2 = t.Field2,
Field3 = Db.Database.SqlQuery<string>("select dbo.f_MyFunction('val', 4)").FirstOrDefault()
};
不要使用SqlQuery,请尝试以下CreateQuery
Field3 = Db.Database.CreateQuery<string>("SELECT Db.Database.f_MyFunction(@someParameter1) FROM {1}", new ObjectParameter("someParameter", someParameter)).FirstOrDefault();
Field3=Db.Database.CreateQuery(“从{1}中选择Db.Database.f_MyFunction(@someParameter1)”,新建ObjectParameter(“someParameter”,someParameter)).FirstOrDefault();
在我找到的解决方案中。我将CodeFirstStoreFunctions nuget包与FunctionsConvention一起使用。您使用的是System.Data.Entity.SqlServer;?是的,它是SqlServer提供程序。它是在web.config中设置的:Db.Database属性中没有方法CreateQuery。检查这个,它对我没有帮助。相同的错误,但错误的方法是CreateQuery
Field3 = Db.Database.CreateQuery<string>("SELECT Db.Database.f_MyFunction(@someParameter1) FROM {1}", new ObjectParameter("someParameter", someParameter)).FirstOrDefault();