私はデータベース上に存在するこの関係をDbModel経由でマップしようとしています。このモデルのEntity FrameworkのDbModel:接続テーブルを使用して1対多の関係をマップする方法
CREATE TABLE core.Institutes
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(128) NOT NULL,
OldID INT NULL
)
GO
CREATE TABLE core.InstitutePlaces
(
FKInstituteID INT NOT NULL PRIMARY KEY REFERENCES core.Institutes(ID),
FKPlaceID INT NOT NULL REFERENCES core.Places(ID)
)
GO
CREATE TABLE core.Places
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(128) NOT NULL,
FKParentID INT NULL REFERENCES core.Places(ID),
OldID INT NULL
)
GO
public class Place
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Place Parent { get; set; }
}
public class Institute
{
public int Id { get; set; }
public string Name { get; set; }
public Place Place { get; set; }
}
我々は、マッピングに
modelBuilder.Entity<Institutes.Institute>().HasOptional(i => i.Place);
を行うには、このようなものを使っているが、それは動作しません:(
このシナリオがありますEDMLファイルで完全に管理されているため、問題はマッピングに関するものだけです。
私はあなたのモデルが1から*動作すると考えています。ナビゲーションプロパティはICollectionである必要があります Institutes {get; set;}、遅延読み込みを有効にするには、プロパティを仮想にします。ここにEFCF CPT5の良いブログがあります。http://weblogs.asp.net/manavi/default.aspx –
Paul
ありがとうございますが、私たちは、私たちのために意味がないので、場所から研究所へのナビゲーションプロパティを避けたいと思います場所から研究所、またはその特定の場所にリンクされている他のエンティティに移動する。 – Kralizek