如何使用ASP.NET MVC 3实体框架中的DBContext映射存储过程

use*_*929 6 c# stored-procedures entity-framework asp.net-mvc-3

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

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*ing 6

代码优先不支持存储过程.

您可以使用以下命令在数据库初始化程序中执

string sql = "CREATE PROCEDURE [MyProc]...";
context.Database.ExecuteSqlCommand(sql);
Run Code Online (Sandbox Code Playgroud)

您可以从上下文执行它们的过程,如下所示:

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

就个人而言,我把它包装成一个漂亮的OO模型.我有专门的SP类与强类型的方法.这些方法使用一个属性进行修饰,该属性告诉DB初始化程序从给定的源创建给定名称的存储过程.强类型方法调用存储过程.