gpt4 book ai didi

c# - 从 LINQ 调用存储过程(使用 dbcontext)

转载 作者:行者123 更新时间:2023-11-30 18:05:16 24 4
gpt4 key购买 nike

大家好使用 EF4,我可以使用像这样的小片段将 EDMX 函数(使用“从数据库更新模型”并从列表中添加存储过程)映射到 linq 方法

[EdmFunction("MYPROJECT.Store", "Foo")]
public Decimal Foo(Int32 Id)
{
throw new NotSupportedException("Not direct access possible, use with E-SQL or LINQ");
}

但这似乎不适用于 EF 4.1

我发现存储过程不适用于 Code First。我正在使用 DbContext,我不能这样做是否正常?

如果是,我怎样才能让我的存储过程正常工作?

提前致谢:-)

最佳答案

这只是 EDMX 相关的功能,如果没有 EDMX,您不能将它与 DbContext API 代码优先/流畅的 API 一起使用。顺便提一句。你的意思是 SQL 函数而不是存储过程,因为导入的存储过程导致函数导入并且不能在 Linq 查询中调用。用 EdmFunction 标记的方法说明导入的 SQL 函数和模型定义的函数。

是的,我知道,SQL 函数出现在导入向导中的存储过程分支下,但这只是 EDMX 设计器的“功能”。

因为您使用的是数据库优先的 DbContext API 和 EDMX 文件,所以您应该能够毫无问题地使用 EdmFunction。我刚刚测试了它。问题可能是您用 EdmFunction 属性标记的代理方法不是静态的 - 它必须是静态的。

关于c# - 从 LINQ 调用存储过程(使用 dbcontext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com