Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何使用Moles来存根实体框架存储过程调用?_Entity Framework_Mocking_Pex And Moles - Fatal编程技术网

Entity framework 如何使用Moles来存根实体框架存储过程调用?

Entity framework 如何使用Moles来存根实体框架存储过程调用?,entity-framework,mocking,pex-and-moles,Entity Framework,Mocking,Pex And Moles,我正试图给db打个电话。基本思想是编写一行代码,如下所示: Person person = (from p in this.Entities.FindPerson("Smith") select p).FirstOrDefault(); 以我想要的方式返回对象,而不转到db。FindPerson(string)表示存储的进程(以防万一) 我试图覆盖FindPerson,但我需要返回ObjectResult。它是一个没有公共构造函数的密封类。我所有创建它的尝试都以打电话给db而告终。我一直在寻找

我正试图给db打个电话。基本思想是编写一行代码,如下所示:

Person person = (from p in this.Entities.FindPerson("Smith") select p).FirstOrDefault();
以我想要的方式返回对象,而不转到db。FindPerson(string)表示存储的进程(以防万一)


我试图覆盖FindPerson,但我需要返回ObjectResult。它是一个没有公共构造函数的密封类。我所有创建它的尝试都以打电话给db而告终。

我一直在寻找同一个问题的答案。以下论坛帖子为我清除了它:

基本上,他们说的不是直接调用EF,而是通过将数据层从业务层抽象出来,使代码可测试

您可以通过存储库模式或类似的方式来实现这一点,然后使用依赖项注入来注入模拟

引用Peli(参与“Pex”计划的微软员工):

鼹鼠应该是最后的选择 解决方案首选的方法是使用 可测试的设计,即抽象 在数据层和业务层之间 图层等

干杯