2013-04-10 113 views

回答

2

我假設你已經有一個t4模板生成一個DbContext。因此,只需編輯上下文的T模板,該模板可能名稱爲Yourmodelname.Context.tt。有這樣它的塊(我使用EF 5):

public string DbSet(EntitySet entitySet) 
{ 
    return string.Format(
     CultureInfo.InvariantCulture, 
     "{0} DbSet<{1}> {2} {{ get; set; }}", 
     Accessibility.ForReadOnlyProperty(entitySet), 
     _typeMapper.GetTypeName(entitySet.ElementType), 
     _code.Escape(entitySet)); 
} 

現在改變"{0} IDbSet<{1}>"{0} DbSet<{1}>和上下文將有IDbSets

注意:如果這是模擬上下文的操作的一部分,您應該知道這是非常沒有希望的。

+0

你在嘲笑背景背後有什麼推理是無望的?在這個 – 2013-07-23 18:35:21

+0

@DavidHayes [this](http://stackoverflow.com/a/13352779/861716)上似乎有很大的不同意見。 – 2013-07-23 20:53:36

+0

謝謝,我認爲在簡單情況下嘲弄上下文有一定的價值,但它的確是有限的。我們目前正在嘲諷背景和審批測試。我懷疑我們會最後得到後者。肯定比單元測試這些東西更難 – 2013-07-24 01:24:04