我有一個代碼第一個EF 6模型。我試圖用RemoveRange()去除指定範圍的數據,然後在實體上使用SaveChanges()。c# - 實體框架6錯誤「無法找到存儲過程'dbo.RosterSummaryData_Subject_Local_Delete'。」
customerContext.RosterSummaryData_Subject_Local.RemoveRange(subjLocal); // subjLocal is not important to the question
customerContext.SaveChanges();
我得到這個消息時,我跨過SaveChanges方法:
所以我查看內部異常,並看到消息
Could not find stored procedure 'dbo.RosterSummaryData_Subject_Local_Delete'.
我不知道怎麼說都雖然當我使用onModelCreating方法在我的基本實體中創建所有存儲過程時:
public partial class CustomerContext : DbContext
{
public CustomerContext()
: base("name=CustomerContext")
{
}
public CustomerContext(string connStr) : base(connStr)
{
}
public virtual DbSet<RosterSummaryData_Cluster_Local> RosterSummaryData_Cluster_Local { get; set; }
public virtual DbSet<RosterSummaryData_Subject_Local> RosterSummaryData_Subject_Local { get; set; }
public virtual DbSet<RosterSummaryData_Cluster_Local_Bands> RosterSummaryData_Cluster_Local_Bands { get; set; }
public virtual DbSet<RosterSummaryData_Subject_Local_Bands> RosterSummaryData_Subject_Local_Bands { get; set; }
public virtual DbSet<RosterSummaryData_Cluster_Local_Averages> RosterSummaryData_Cluster_Local_Averages { get; set; }
public virtual DbSet<RosterSummaryData_Subject_Local_Averages> RosterSummaryData_Subject_Local_Averages { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<RosterSummaryData_Cluster_Local>().MapToStoredProcedures();
modelBuilder.Entity<RosterSummaryData_Subject_Local>().MapToStoredProcedures();
modelBuilder.Entity<RosterSummaryData_Cluster_Local_Bands>().MapToStoredProcedures();
modelBuilder.Entity<RosterSummaryData_Subject_Local_Bands>().MapToStoredProcedures();
modelBuilder.Entity<RosterSummaryData_Cluster_Local_Averages>().MapToStoredProcedures();
modelBuilder.Entity<RosterSummaryData_Subject_Local_Averages>().MapToStoredProcedures();
}
}
這裏是一個實例的基本上下文代碼:
CustomerContext customerContext = new CustomerContext(statsInfo.CustomerDCS);
//statsInfo.CustomerDCS is just the custom connection string for my entity
有沒有人有什麼,我做錯了任何想法或有這個問題的經驗,因爲我看不出有什麼問題,不能上找不到任何答案互聯網......
編輯:存儲過程肯定是沒有創建,但我沒有看到任何錯誤的代碼,我有適當的權限。
那麼它絕對不是在數據庫中創建的,但我100%確定我有適當的權限。 – frontin
您使用哪種EF遷移策略? EF可能沒有檢測到你的模型有任何變化,也沒有創建存儲的特效。 – RedJandal
EF遷移策略意味着什麼?我所知道的是,它是一個代碼優先模型,我使用自定義連接字符串構造函數連接到數據庫,並且應該創建存儲過程的所有modelBuilder代碼位於問題的代碼中。 – frontin