3

我想让 Visual Studio 创建的 T4 模板将我的实体输出为 IDbset 而不是 DbSet 知道怎么做吗?

4

1 回答 1

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} DbSet<{1}>"{0} IDbSet<{1}>上下文将具有IDbSets.

旁注:如果这是模拟上下文的操作的一部分,您应该知道这是非常没有希望的。

于 2013-04-10T19:52:30.970 回答