私はEntity Framework 5データベースの最初のアプローチを使用しています。
Person、Group、PersonGroup の 3 つのテーブルを持つ既存のデータベースがあります。これは、1 対多の関係を表すためです。個人は複数のグループに所属できます。PersonGroup テーブルには、PersonId と GroupId という ID があります。
テーブル構造:
個人: PersonId、PersonName
グループ: GroupId、GroupName
PersonGroup: PersonId、GroupId
EF5 は、Person および Group エンティティのナビゲーション プロパティとして PersonGroup テーブルを追加しました。グループ名に基づいてグループから人を削除したい。私はまだ個人とグループを維持したいです。
このメソッドをリポジトリに書き込むにはどうすればよいですか? ここに私が持っているものがあります
public bool RemovePersonFromGroup(Guid personId, string groupName)
{
using (gblPersonEntities gblPerson = new gblPersonEntities())
{
var pg = gblPerson.Person
.Where(p => p.PersonId == personId).FirstOrDefault()
.Group.Where(g => g.GroupName == groupName).FirstOrDefault();
//doesn't work because pg returns as a Group entity and
//remove is expecting a Person entity and I just want to remove a
//PersonGroup entity
gblPerson.Person.Remove(pg);
gblPerson.SaveChanges();
}
return true;
}
また、このプロジェクトでは、すべてのエンティティが切り離されており、プロキシ型を使用せず、WCF サービス境界間を移動するように設計されています。