.net - 为什么我不能使用 .net Entity Framework 执行 SQL 函数?

标签 .net sql entity-framework

我在我的 .net 项目中编写了以下代码。我以前从未使用过 Entity Framework ,这是我要做的第一件事:执行一个函数并保存结果

using System.Data.Objects;

MyEntities entities = new MyEntities

var result0 = entities.CreateQuery<string>("SELECT XXX FROM Fn_Org_GetXXX('XXXX',2012);").first();

var result1 = entities.ExecuteFunction("fn_org_getXXX", new ObjectParameter[]
    {
        new ObjectParameter("location","XXXX"),
        new ObjectParameter("fiscalyear",2012)
    });

两行代码都抛出异常,表明该函数不存在。但是,当我在 SQL Server Management Studio 中运行上述代码时,它运行良好。我正在使用相同的凭据登录到 SQL 服务器。

result0 的错误是:

'Fn_Org_GetXXX' cannot be resolved into a valid type or function.

result1 的错误是:

The FunctionImport 'fn_org_getXXX' could not be found in the container 'MyEntities'.

我做错了什么?

最佳答案

我认为 Entity Framework 目前不支持 SQL 用户定义函数。这是一个 post您可以在 edmx 模式中定义它。

June 2011 CTP 有一些更新,但我认为它尚未发布。

关于.net - 为什么我不能使用 .net Entity Framework 执行 SQL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9070029/

相关文章:

c# - 缓存函数结果

c# - 正则表达式替换 : how to get length of the match dynamically in replacement

sql - 为什么SQL SERVER中没有给出finally block ?

mysql - 将两个相似的行合并为一个新列

c# - 将 EF5 升级到 EF 6,现在得到 "Cannot find the object because it does not exist or you do not have permissions."

asp.net-mvc - 为 Entity Framework 自动生成元数据类

c# - 在 C# 中生成下一个可用的唯一名称

.net - MVC3 客户端对集合的验证,至少有一个元素具有值

SQL 按日期获取前 10 条记录

c# - MVC 4、EF 5 SaveChanges 不更新数据库