【问题标题】:Call stored procedure or run sql query?调用存储过程还是运行sql查询?
【发布时间】:2015-08-07 23:21:37
【问题描述】:

在 EF7 中是否可以执行存储过程或执行一段 SQL?

要在早期的 EF 版本中执行此操作,我们有多种选项,例如 MSDN here 中详述的选项

如果没有,是否有计划通过扩展命名空间之一(例如 EntityFramework.Relational 或 EntityFramework.SqlServer)来允许此操作。

目前我正在通过直接 Ado.Net 进行此调用,但是它的缺点是它(当前)不受 dnxcore50 框架的支持。

【问题讨论】:

    标签: c# sql-server entity-framework entity-framework-core


    【解决方案1】:

    如果它返回实体,请在DbSet 上使用.FromSql() 扩展方法。您甚至可以在它之上继续编写 LINQ。

    var customers = db.Customers
        .FromSql("SELECT * FROM Customer")
        .Where(c => c.Name.StartsWith("A"));
    

    【讨论】:

    • 感谢您的反馈。此时我没有使用实体,但是我添加了一个虚拟实体来使用此功能 - 它有点脏,但比掉到 Ado 的影响要好得多。还值得注意的是,由于子查询,存储过程在这里是不可行的 - 我将我的转换为 TVF,一切都很好!
    【解决方案2】:

    Stored Procedures 尚未在Entity Framework 7 中实现,您可以跟踪开发here

    谢谢

    【讨论】:

    • 干杯 - 不幸的是,自 2014 年 5 月以来,这并没有真正感动 - 仍在积压中。
    猜你喜欢
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    相关资源
    最近更新 更多