私のドメインには 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();
}
ここで、2 つの継承された型が必要です。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);
}
}
だから今、私は契約を履行し、異なる運転方法を持っている2台の車を持っています.
いいね
これはうまく機能するので、アプリの他の場所でこのようなメソッドを使用でき、満足しています
public string DoDrive(ICar c)
{
return c.Drive();
}
しかし、流暢な nhibernate を使用して Car オブジェクトをデータベースに永続化する必要があります。テーブル Car を 1 つだけにして、トラックとスポーツカーを同じテーブルに配置します。スポーツカーかトラックかを識別する列挙型を作成できます。それは問題ではありません。しかし、車のオブジェクトをマッピングする方法。
nhibernate に抽象クラスを使用できません
ありがとう!