Sis*_*utl 3 c# inheritance entity-framework
我有几个类继承自一个包含一些常用实用程序代码的抽象基类.我想转移到EF进行数据访问,但我仍然希望对象继承基类中的公共代码.EF类已经从EntityObject继承,所以我不能让它们继承我的基类.处理这个问题的正确方法是什么?我的环境是Net 3.5/C#
对不起,如果你看到我之前的帖子 - 我错过了你问题中的重要内容.
您可以使用部分类.使您的partial类具有一个内部字段,其中包含您想要的基类实例,并实现所有方法和属性(除非它们已在实体中实现).如果您正在尝试,那么,为了允许使用您的实体类,您可以public static implicit operator在基类(或部分实体类)中使用a 来允许转换而不会有麻烦.
如果你有一个名为MyBaseClass的抽象基类,你可以这样做:
public partial class MyEntityClass
{
private MyBaseClass _baseClass;
private MyBaseClass BaseClass
{
get
{
if (_baseClass == null)
{
_baseClass = new MyBaseClass();
}
return _baseClass;
}
}
public string BaseClassString
{
get
{
return BaseClass.BaseClassString;
}
set
{
BaseClass.BaseClassString = value;
}
}
// etc.
public static implicit operator MyBaseClass(MyEntityClass e)
{
return new MyBaseClass() {
Property1 = e.Property1,
Property2 = e.Property2 // etc.
};
}
public static implicit operator MyEntityClass(MyBaseClass b)
{
return new MyEntityClass() {
Property1 = b.Property1,
Property2 = b.Property2 // etc.
};
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |