【发布时间】:2013-08-06 20:02:24
【问题描述】:
我的域有一个名为 Car 的对象。它有几个属性
public abstract class Car : ICar
{
public int Id { get; set; }
public string Name { get; set; }
public string Model { get; set; }
public string Color { get; set; }
public abstract string Drive();
}
它实现了ICar接口
public interface ICar
{
string Color { get; set; }
int Id { get; set; }
string Model { get; set; }
string Name { get; set; }
string Drive();
}
现在我希望有两种继承类型。他们继承了 Car,并实现了 ICar。
class SportCar: Car, ICar
{
public override string Drive()
{
return ("vroooomvroooomvroooomvroooom i'm a sports car - "+ Name);
}
}
和
class Truck: Car, ICar
{
public override string Drive()
{
return ("grrrrrrrrrrrr i'm a sports truck- " + Name);
}
}
所以现在我有两辆履行合同的车辆,并且有不同的驾驶方式。
酷
这很好用,所以在我的应用程序的其他地方我可以有这样的方法,我们很高兴
public string DoDrive(ICar c)
{
return c.Drive();
}
但现在我希望我的 Car 对象使用 fluent nhibernate 持久化到数据库中。 我只想要一张桌子汽车,卡车和跑车在同一张桌子上。我可以创建一个枚举来确定它是跑车还是卡车。那不是一个问题。但是如何映射我的汽车对象。
我不能为 nhibernate 使用抽象类
谢谢!
【问题讨论】:
标签: c# oop inheritance interface fluent-nhibernate