使用实体框架CPT4有没有执行自定义命令或脚本的方法?
例如:
_dbSet.Provider.Execute("Truncate Table Users");FWIW;我将在单元测试的类设置中使用它,并使用干净的数据设置表。
发布于 2010-12-03 06:26:56
尝试ObjectContext.ExecuteStoreCommand方法。
使用现有连接直接对数据源执行任意命令。
调用ExecuteStoreCommand方法等效于调用DbCommand类的ExecuteNonQuery方法。
其他一些有用的信息:Tip 41 – How to execute T-SQL directly against the database
下面是ExecuteStoreCommand的示例
// 10% inflation day!
ctx.ExecuteStoreCommand("UPDATE Products SET Price = Price * 1.1");发布于 2010-12-03 06:17:20
也许可以看看ndbunit来设置和拆卸您的数据库以进行单元测试
编辑:
这就是我们在应用程序上用来单元/集成测试我们的数据访问层的东西,它实际上是使用EF4实现的。它相当简单,并提供了一种注入和清理可重复测试数据的好方法。
但是,我们还需要使用EF删除/截断应用程序逻辑本身中的表。因此,为了回答您最初的问题,我们将"delete from table“脚本合并到一个存储过程中,然后使用
_dataContext.ExecuteFunction("SchemaName.MyTableDeleteProc");发布于 2010-12-03 06:19:22
我能想到的最快的变通方法是使用存储过程。另一种选择是使用批量删除描述的http://www.aneyfamily.com/terryandann/post/2008/04/Batch-Updates-and-Deletes-with-LINQ-to-SQL.aspx <--这里,但代码是基于Linq2Sql,而不是EF,你将不得不移植它。
https://stackoverflow.com/questions/4340529
复制相似问题