こんにちは、識別句が古典的な「IS NOT NULL」/「IS NULL」ケースである階層にTPHマッピングを作成しようとしています。
データベースに関する例を次に示します。
CREATE TABLE info.EducationTypes
(
ID INT NOT NULL PRIMARY KEY,
Name NVARCHAR(64) NOT NULL,
FKParentID INT NULL REFERENCES info.EducationTypes(ID)
)
アイデアは、次のようなクラス階層を持つことです。
public abstract class EducationType
{
public int ID { get; set; }
public string Name { get; set; }
}
public class MainEducationType : EducationType
{
public IEnumerable<SubEducationType> SubTypes { get; set; }
}
public class SubEducationType : EducationType
{
public MainEducationType MainType { get; set; }
}
このスキーマを従来の xml モデルで "機能" させましたが、コード ファーストのアプローチを使用して機能させる方法を実際に見つけることができません。これは私が試したことです...
var educationType = modelBuilder.Entity<EducationType>();
educationType.Map<MainEducationType>(m => m.Requires("FKParentID").HasValue(null));
educationType.Map<SubEducationType>(m => m.Requires("FKParentID"));
何か提案はありますか?