私は2つのテーブルを持っています、例えば:
先生1-------*生徒
'Pupils'という名前のナビゲーションプロパティが1つだけあります。
この例のために、私がやりたいのは、「Boys」という名前の2つのナビゲーションプロパティと「Girls」という名前の別のナビゲーションプロパティを作成することです。これは、「IsMale」という名前のブールに基づいています。
データベースからエンティティモデルを生成したので、これはコードファーストではありません。
誰かがこれを行う方法を教えてもらえますか?生成されたソースを変更する必要がありますか?その場合、更新が発生するとどうなりますか?コードは失われますか?
御時間ありがとうございます!
クレイグ
これが私の解決策です:
ナビゲーションプロパティを追加し、プロパティで、教師と生徒の間の関連付けを選択します。
生成されたコードで、ナビゲーションプロパティ「Boys」を見つけ、最後に.whereを追加して、次のように男の子を選択します。
[XmlIgnoreAttribute()]
[SoapIgnoreAttribute()]
[DataMemberAttribute()]
[EdmRelationshipNavigationPropertyAttribute("SchoolModel", "FK_Pupils_Teacher", "Pupil")]
public EntityCollection<Pupil> Boys
{
get
{
return (EntityCollection<PriceKey>)((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<PriceKey>("SchoolModel.FK_Pupils_Teacher", "Pupil").Where(p => p.IsMale == true);
}
set
{
if ((value != null))
{
((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Pupil>("SchoolModel.FK_Pupils_Teacher", "Pupil", value);
}
}
}
それが私の解決策です。これで、ナビゲーションプロパティを使用できるようになり、必要なものを返します。
私も以下の答えが好きです!そして、1つはより良いアイデアだと思います:)
乾杯!