【问题标题】:access a Database scalar value function in Entity framework 6 within linq在 linq 中访问实体框架 6 中的数据库标量值函数
【发布时间】:2015-05-13 07:38:29
【问题描述】:

在实体框架中使用以下 sql 标量值函数应该遵循哪些步骤。

select dbo.GetDefaultAccount(5,1,48)

我尝试在 edmx 的同一命名空间下创建一个静态类,并将函数定义如下

    [EdmFunction("Model.Store", "GetDefaultAccount")]
    public static int? GetDefaultAccount(int id, Int16 type, int assocId)
    {
        throw new NotSupportedException();
    }

在像下面这样从 linq 访问它时

  var Accountno = (from s in dbcontext.TranSetups select new { Accountno = CutomEdmxFunctions.GetDefaultAccount(5, 1, 48) })
                       .FirstOrDefault().Accountno;

我收到以下错误

无法转换为 LINQ to Entities 存储表达式,因为没有重载与传递的参数匹配

谢谢

【问题讨论】:

    标签: c# sql-server linq entity-framework-6 user-defined-functions


    【解决方案1】:

    不幸的是,在实体框架中工作的标量值函数并不像想象的那么容易。经过长时间的谷歌搜索,我发现只有两种使用标量值函数的方法,最好描述为here,但请记住:当您从数据库更新 EDM 时,对 .edmx 文件的所有编辑都将丢失。您每次都必须重新编辑 .edmx 文件。祝你好运。

    【讨论】:

    • 不鼓励仅链接的答案。请从参考链接中引用答案的基本部分,因为如果链接页面发生更改,答案可能会失效。
    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多