1

私は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 サービス境界間を移動するように設計されています。

4

1 に答える 1