私たちはライセンス番号を発行する製品を販売しており、お客様は毎年アップグレードすることができます。 License
UpgradedTo
とUpgradedFrom
ナビゲーションプロパティを定義することで、このアップグレード情報を追跡するPOCOをセットアップして、関連するライセンスの「チェーン」を簡単に上下に移動できます。したがって、基本的には次のようなものです:複数の自己参照ナビゲーションプロパティ
私は実際にEF AnnotationsとFluent APIでこれを定義する方法を苦労しています。私は自己参照面が私を踏みつけていると思っています。
また、設定のいずれかギブLicense
上でこれらのUpgradeTo
/UpgradeFrom
特性の一つとEFは関係のもう一方の端に「反対」アップグレード財産の世話を持ってできるようにしたいと思います。したがって、次のようなものがあります。
// Licenses upgraded 1 > 2 > 3
License lic1 = CreateLicense('1');
License lic2 = CreateLicense('2');
License lic3 = CreateLicense('3');
using (var db = new Model1())
{
// Insert into database
db.Licenses.Add(lic1);
db.Licenses.Add(lic2);
db.Licenses.Add(lic3);
db.SaveChanges();
// Specify UpgradeFrom/UpgradeTo info only on lic2.
lic2.UpgradedFrom = lic1;
lic2.UpgradedTo = lic3;
db.SaveChanges();
// lic1 and lic3 automatically update possible?
Debug.Assert(lic1.UpgradedTo == lic2);
Debug.Assert(lic3.UpgradedFrom == lic2);
}
。これは本当にありがとう! – John