時,這是this question嘲笑DbSet不使用genrics
我嘲笑一個的DbContext多DbSets的延續返回值。我將對象添加到模擬對象中,但是當我嘗試通過其id
查詢特定對象時,它會引發錯誤。
AmazonReport.Tests.ProductTests.ProductControllerTest.TestReturnEditedModel:
System.InvalidOperationException : Sequence contains no matching element
我有問題的範圍縮小到這個功能(foreach
循環是有驗證ID IM傳遞是在DbSet,它是)
public virtual TEntity Get(TId id)
{
foreach(TEntity b in this.DbSet)
{
Console.WriteLine(b.Id + " and " + id);
}
return this.DbSet.Single(x => (object)x.Id == (object)id);
//return this.DbSet.Single(x => Convert.ToInt32(x.Id) == Convert.ToInt32(id));
//return this.DbSet.SingleOrDefault(x => (object)x.Id == (object)id);
}
原樣,它不起作用。但是,如果我註釋掉當前的退貨聲明並使用return this.DbSet.Single(x => Convert.ToInt32(x.Id) == Convert.ToInt32(id));
它不會拋出錯誤。
所以我的問題是,當DbSet
包含一個對象id == 3
和傳入TId id == 3
爲什麼比較不返回任何對象?
我們可以看到模擬DbSet的設置代碼嗎? – 2014-10-03 15:01:33