【发布时间】:2013-04-10 16:08:36
【问题描述】:
我想让 Visual Studio 创建的 T4 模板将我的实体输出为 IDbset 而不是 DbSet 知道怎么做吗?
【问题讨论】:
标签: .net c#-4.0 entity-framework-4.1
我想让 Visual Studio 创建的 T4 模板将我的实体输出为 IDbset 而不是 DbSet 知道怎么做吗?
【问题讨论】:
标签: .net c#-4.0 entity-framework-4.1
我假设您已经有一个生成DbContext 的 t4 模板。因此,只需编辑上下文的 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。
旁注:如果这是模拟上下文的操作的一部分,您应该知道这是非常没有希望的。
【讨论】: