Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
C# DbContext的Linq Where子句_C#_Linq_Entity Framework_Rhino Mocks_Stubbing - Fatal编程技术网

C# DbContext的Linq Where子句

C# DbContext的Linq Where子句,c#,linq,entity-framework,rhino-mocks,stubbing,C#,Linq,Entity Framework,Rhino Mocks,Stubbing,我试图对我的存储库进行单元测试。我需要用一些值来模拟Where子句。 我试过以下方法 var parentClass = new ParentClass {id = 1}; var subClass = new SubClass { id=2, ParentClassId = parentClass.id, ParentClass = parentClass } var subSubClass = new SubSubClass { id =3, Su

我试图对我的存储库进行单元测试。我需要用一些值来模拟Where子句。 我试过以下方法

var parentClass = new ParentClass {id = 1};

var subClass = new SubClass
{
    id=2,
    ParentClassId = parentClass.id,
    ParentClass = parentClass
}

var subSubClass = new SubSubClass
{
    id =3,
    SubClassId = subClass.id,
    SubClass = subClass
}

var dbContext = MockRepository.GenerateMock<IDbContext>();
    var subClassContext = MockRepository.GenerateMock<IDbSet<SubClass>>();
var subSubClassContext = MockRepository.GenerateMock<IDbSet<SubSubClass>>();

subClassContext.Stub(x => x.GetEnumerator())
                .Return(null)
                .WhenCalled(c => c.ReturnValue = new List<SubClass> { subClass }.GetEnumerator());

subSubClassContext.Stub(x => x.GetEnumerator())
                .Return(null)
                .WhenCalled(c => c.ReturnValue = new List<SubSubClass> { subSubClass }.GetEnumerator());
我遇到了ArgumentNullReferenceException


我做错了什么?

您还应该存根
上下文。SubSubClass
属性——默认情况下它返回
null

这似乎不是我的问题的答案。您的两个代码片段中的代码彼此没有直接关系。第二个片段中的
上下文是什么?它是上面的
dbContext
,还是其他什么?
var existingSubSubClasses = context.SubSubClass.Where(cba => cba.SubClass.ParentClassId == parentClassId).ToList();