首先在代码中继承泛型类

时间:2015-09-15 16:47:06

标签: c# entity-framework generics inheritance

在MVC应用程序中,我想向我的域模型添加错误和信息消息,但不要将它们保留到数据库中。

目前我有从EntityTypeConfiguration继承的映射类,例如:

public class ComputerMap : EntityTypeConfiguration<Computer>

所以我计划创建一个继承自EntityTypeConfiguration的泛型类,以便我可以向所有派生类添加Ignore()声明。类似的东西:

protected class MessagableConfiguration<T> : EntityTypeConfiguration<T>
{
    public MessagableConfiguration()
    {
        Ignore(t => Errors);
        Ignore(t => Info);
    }
}

然后继承MessagableConfiguration,如下所示:

public class ComputerMap : MessagableConfiguration<Computer>

我不确定如何声明MessagableConfiguration。我试过这个:

public class MessagableConfiguration<Messagable> : EntityTypeConfiguration<Messagable>;

..这是described here ..但我的intellisense告诉我&#34;参数Messagable隐藏类Messagable&#34;

BTW Messagable是计算机和其他类派生的基类。

正确的语法是什么,或者我做错了什么。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Type Constraint编写如下代码:

public class MessagableConfiguration<T> :EntityTypeConfiguration<T> where T: Messagable