实体框架中的接口进行多重继承?

时间:2016-09-05 07:20:22

标签: c# entity-framework inheritance

清楚地解释here 如何实现"多重继承"在C#中使用接口。但是,我想知道,如何在实体框架代码第一工作流程中实现相同的目标。

提供明确的代码:

public abstract class DomainObject {
       // Every business model must have this fields
       public Guid Id {get;set;}
       public string SystemCode {get;set;}

}

这里还有一些可选的抽象类,如:

public abstract class MultiTitleObject : DomainObject {
       public string TitleRu { get; set; }
       public string TitleEn { get; set; }
}

public abstract class ManageableByAdminObject : DomainObject {
       public bool isVisibleOnSite {get;set;}
       public bool isDeletedByAdmin {get;set;}
}

让我们说我的课程需要包含 MultiTitleObject和ManageableByAdminObject 以及 DomainObject 的字段。 由于C#不支持多重继承,我可以执行以下操作:

public class ManageableByAdminDomainObject : ManageableByAdminObject { 

}
public class ManageableByAdminMultiTitleDomainObject : ManageableByAdminDomainObject {
     // Even here it's too complicated...
     // What if I need to inherit from 3 or more classes? 

}

所以我想要使用的解决方案就像接口一样:

public interface IFieldImitation {
      bool isVisibleOnSite ();
}

public class ManageableByAdminObject : IFieldImitation, DomainObject {
      public bool isVisibleOnSite () => return true;
 }

但是,EF确实理解抽象类而不理解接口。 我该如何解决这个问题?

0 个答案:

没有答案