背景:我最初在MVC3和Entity Framework 4.1(Database First &生成的DBContext)上創建了一個應用程序。我遵循一個存儲庫模式。爲了滿足公司DBA的要求,我需要將所有數據訪問轉換爲僅使用SPROCS來推廣數據庫。我陷入對,我希望得到答案的幾件事情...如何在實體框架中使用更新SPROC 4.1
- 插入/刪除/更新功能
我創建我的插入,刪除,更新和功能。我已將它們添加到我的EDM模型中,並將它們填充到相應實體的映射詳細信息中的「映射實體到函數」選項卡上。從我讀過的內容中,我不應該更改我的存儲庫類中的代碼。它是否正確? (下面的代碼)
public void CreateReplacementReason (ReplacementReason replacementreason)
{
_db.ReplacementReasons.Add(replacementreason);
}
public void UpdateReplacementReason(ReplacementReason replacementreason)
{
var rr = FetchReplacementReason(replacementreason.PK_ReplacementReasonId);
rr.DF_IsActive = replacementreason.DF_IsActive;
rr.ReplacementReasonDesc = replacementreason.ReplacementReasonDesc;
}
- 返回SCOPE_IDENTITY()
一個應該如何在我的倉庫類的外觀,要求其有返回值(SCOPE_IDENTITY)一個存儲過程創建方法?我想我可以在我的當前方法中放入一個return語句並更改返回類型。這當然不起作用。
public int CreateReplacementReason (ReplacementReason replacementreason)
{
return _db.ReplacementReasons.Add(replacementreason);
}
這是)任何任何幫助都將認識到,正在被更新後調用返回SCOPE_IDENTITY的存儲過程(
INSERT INTO [dbo].[ReplacementReason] ([ReplacementReasonDesc], [DF_IsActive], [CreatedDateTime])
SELECT @ReplacementReasonDesc, @DF_IsActive, @CreatedDateTime
SELECT SCOPE_IDENTITY() AS Id
。