Moq实体框架ExecuteSQLCommand
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Moq实体框架ExecuteSQLCommand,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1297字,纯文字阅读大概需要2分钟。
内容图文
我已经读过,使用最小起订量时不能模拟非虚函数.我也读过,现在应该有可能了.是真的吗?
如果是这样,那么我想模拟以下查询:
DatabaseContext.Database.ExecuteSqlCommand(updateQuery, newValue);
我在测试中覆盖了上下文
DAL.Context.DatabaseContext = mockContext.Object;
我已经尝试过此设置,但查询仍然消失了,我的常规数据库
mockContext.Setup(c => c.Set<AppSalesAndResult>()).Returns(mockBudgetData.Object);
有什么想法,也许可以将executesql命令替换为其他内容,以便上面的行捕获到该集合的所有udpate?由于性能原因,我在一次更新多行时使用executesqlcommand.常规EF太慢
更新:
阅读以下文章How to Moq Entity Framework SqlQuery calls,我想知道ExecuteSQLCommand是否可以使用类似的实现…
解决方法:
我能够模拟ExecuteSqlCommand所做的事情是在我的DbContext继承中创建相同的方法,但是这次是虚拟的,并调用Database.ExecuteSqlCommand,这是无法在DataBase类中完成的.
public class MyDbContext : DbContext
{
public virtual int ExecuteSqlCommand(string sql, params object[] parameters)
{
return Database.ExecuteSqlCommand(sql, parameters);
}
public virtual int ExecuteSqlCommand(TransactionalBehavior transactionalBehavior, string sql, params object[] parameters)
{
return Database.ExecuteSqlCommand(transactionalBehavior, sql, parameters);
}
然后,我更改了业务代码以调用此创建的方法(非数据库方法):
DatabaseContext.ExecuteSqlCommand(updateQuery, newValue);
然后,它起作用
内容总结
以上是互联网集市为您收集整理的Moq实体框架ExecuteSQLCommand全部内容,希望文章能够帮你解决Moq实体框架ExecuteSQLCommand所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。