背景:我最初在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
。