Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6在Select语句中存储函数_C#_Entity Framework_Linq - Fatal编程技术网

C# 实体框架6在Select语句中存储函数

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

我在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 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();