c# - 如何在 ASP.NET MVC 3 Entity Framework 中使用 DBContext 映射存储过程

标签 c# asp.net-mvc-3 entity-framework stored-procedures

我在这里为表做映射..如何在这里映射存储过程?

public class AppDBContext : DbContext
{
    public DbSet<UserAccount> UserAccount { get; set; }
    public DbSet<GetUserAccounts> GetGetUserAccounts { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<UserAccount>().ToTable("UserAccount");
        modelBuilder.Entity<Customer>().ToTable("Customer");

        base.OnModelCreating(modelBuilder);
    }
}

最佳答案

Code first 不支持存储过程。

您可以使用以下方式在数据库初始化程序中执行脚本:

string sql = "CREATE PROCEDURE [MyProc]...";
context.Database.ExecuteSqlCommand(sql);

您可以像这样从上下文中执行过程:

string command = "EXEC MyProc";
IEnumerable<T> results = context.Database.SqlQuery<T>(command, null);

就个人而言,我将其包装成一个不错的 OO 模型。我有专门的带有强类型方法的 SP 类。这些方法用一个属性修饰,该属性告诉数据库初始化程序从给定源创建给定名称的存储过程。强类型方法调用存储过程。

关于c# - 如何在 ASP.NET MVC 3 Entity Framework 中使用 DBContext 映射存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12707682/

相关文章:

asp.net-mvc-3 - ASP MVC3 本地化 URL 查询字符串参数

c# - 如何使 EF 使用字符串连接构建更新 SQL?

c# - MVVM的EF5 SaveChanges

c# - 如何先用EF代码通过where子句查询

c# - 在复杂类型上链接 DebuggerDisplay

c# - GCHandle 获取 .net 对象的地址(指针)

C#:Resharper 的替代品,C# 版本

c# - 如何使用 C# 'foreach' DataTable 中的列?

c# - 从 OnActionExecuting 显式设置时 ViewModel 为 null

css - MVC3 TextBoxFor 添加类移除input-validation-error验证css类