10
我們首先使用EF代碼,併爲我們的銷售數據庫提供數據上下文。另外,我們有一個位於數據上下文之上的類,它執行一些基本的CRUD操作。Mocking DbContext.Set <T>()?
例如,我們有以下功能:
public static T Create<T>(int userId, T entity) where T : class, IAllowCreate
{
if (entity == null)
throw new ArgumentNullException("entity");
using (SalesContext dc = new SalesContext())
{
dc.Set<T>().Add(entity);
dc.SaveChanges();
return entity;
}
}
我發現an example of如何製造假背景和IDBset性能。我開始實施,但我遇到了一個問題。
我們在我們的代碼中非常自由地使用dc.Set(),因爲我們試圖創建通用的CRUD方法。而不是有一個ReadCustomer,ReadContact等,我們只是做Read()。但是,dc.Set返回一個DbSet,而不是一個IDbSet,所以我無法嘲笑它。
有沒有人能夠模擬或假的DbContext,仍然使用Set功能?
我開始走下那條路,放棄得太快。最後我還需要添加一個GetNonTrackedDbSet()。 – taylonr 2011-02-15 19:22:53