1

こんにちは、識別句が古典的な「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"));

何か提案はありますか?

4

1 に答える 1

3

残念ながら、TPH マッピングの識別子列に null 値を持つことは、現在 CTP5 ではサポートされていません。これは、こちらこちらのEF チームによって確認されています。ただし、RTMで機能させることができるかどうかを確認するために、彼らはそれを見ています.

于 2011-02-16T19:46:21.800 に答える