如何自动化实体实现IEntity?

时间:2014-05-15 19:30:48

标签: c# entity-framework interface

我有一个自定义界面IEntity。我希望我的Entity Framework生成的POCO实体派生自IEntity。目前;我正在为每个Entity Framework实体添加一个分部类并定义;

public partial class Person : IEntity
{
}

public partial class City : IEntity
{
}

通过反射或IoC容器有没有更优雅的方法呢?

注意:在某些情况下,我希望有可能不为某些实体实现IEntity。

注意2:我不想编辑任何tt或edmx文件。

2 个答案:

答案 0 :(得分:1)

转到生成实体的T4模板(Something.tt),找到行

<#=codeStringGenerator.EntityClassOpening(entity)#>

此行为每个实体生成类开放字符串,例如

public class Foo

并将其替换为

<#=codeStringGenerator.EntityClassOpening(entity)#> : IEntity

现在生成的实体定义看起来像

public class Foo : IEntity

如果IEntity在不同的命名空间中定义(我认为有点奇怪的情况),你可能还需要使用命名空间添加命名空间。

答案 1 :(得分:0)

您始终可以制作项目模板。所以当你做Add New =&gt;实体类型而不是说正常的类类型。因此,如果您创建“实体类型”,则IEntity已经实现/继承了您设置的任何内容。

http://msdn.microsoft.com/en-us/library/tsyyf0yh.aspx http://visualstudiomagazine.com/articles/2012/08/20/visual-studio-custom-templates.aspx

然后它不是“长期”生成,它只会在您创建文件时生成它,但它会自动生成。