C# DbContext的Linq Where子句
我试图对我的存储库进行单元测试。我需要用一些值来模拟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
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();