2017-04-20 90 views
0

我正在使用最新的EF Core 1.1.1.NET Core。現在我想在我的ApplicationDbContext類的OnModelCreating方法中實現一些通用代碼,以便從db中調用任何現有的SP。請注意,我有我的模型類以及數據庫表。因此,我也不希望進行任何遷移,也不希望爲OnModelCreating內的特定SP指定SP參數。它應該是一個可以用於任何SP的通用實現。我唯一的目的是從數據庫調用任何現有的SP。從實體框架核心調用現有存儲過程

實體:

public class Product 
{ 
public int Id { get; set; } 
public string Name { get; set; } 
public decimal Price { get; set; } 

} 

ApplicationDbContext類:

public class ApplicationDbContext : DbContext 
{ 
    public ApplicationDbContext() 
    { 
    Database.Connection.ConnectionString = "Data Source=.\\SQLExpress;Initial 
    Catalog=CallingExistingSPFromEFCore;Integrated Security=True"; 
    } 

    public DbSet<Product> Products { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
    modelBuilder.Entity<Product>().MapToStoredProcedures 
    (
     //What should be the implementation here ? 
) 

     base.OnModelCreating(modelBuilder); 
    } 
} 

回答

0

好球員,所以我發現,在情況下,不需要遷移,我們可以跳過OnModelCreating方法,只是繼續用OnConfiguring方法。

public class ApplicationDbContext : DbContext 
{ 
    public DbSet<Student> Students { get; set; } 

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
     { 
     optionsBuilder.UseSqlServer(@"Server=servername;Database=dbname;Trusted_Connection=True;"); 

     } 
    } 
0

我不相信EF核心1.1支持存儲過程作爲尚未。看看EF 6.X的VS EF核心1.1這裏的比較:

Entity Framework Feature Comparision

+0

您可以使用FromSql()調用過程。但是我擔心的是OnModelCreating()的實現,因爲在所有的例子中,他們都使用了代碼優先/數據庫優先遷移。 – izengod