我对使用linq 2 sql中的存储过程更新数据感到困惑。 我的问题是:当我使用存储过程来更新数据库中的一些数据时(但这存储了 程序没有映射到某个特定实体)我应该在它之后调用SubmitChanges。还有当我在循环中调用大量此类过程时的事务,我应该通过Connection.BeginTransaction()方法或模型显式创建事务吗?
同样,我知道当存储过程与模型中的某个实体链接时它是如何工作的,但现在我不会使用自定义存储过程来更新许多表中的记录。
感谢您的帮助!
答案 0 :(得分:3)
通过存储过程和LINQ to SQL更新非实体数据非常简单。只需将存储过程从服务器资源管理器拖到DBML设计器中的空白空间(因此它不会尝试返回实体对象)并在代码中调用相关的生成方法,如下所示:
myDataContext.MyStoredProcedureMethod();
操作立即执行,因此您无需调用SubmitChanges()。
要在LINQ to SQL事务中包装此调用(或循环或其他),请参阅instructions and examples here以了解如何使用LINQ to SQL事务。