2013-04-10 115 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