0

VS2010でEDMモデルを作成しました。PermissionsRolesは私のモデルのエンティティであり、多対多の関係にあります。各コレクションの2つのエントリ間に関係を追加しようとしています。

ここに画像の説明を入力してください

このコードは機能します:

private static void AttemptToLink() {
    using (var context = new UserAuthEntities()) {
        p = context.Permissions.Include("Roles").First();
        r = context.Roles.First();
        p.Roles.Add(r);
        context.SaveChanges();
    }
}

しかし、次のコードはそうではありません。誰かが私が間違っていることを教えてもらえますか?

internal class Program {
    private static Permission p;
    private static Role r;

    private static void Main(string[] args) {
        LoadEntities();
        LinkEntities();
        SaveEntities();
        Pause();
    }

    private static void LoadEntities() {
        using (var context = new UserAuthEntities()) {
            p = context.Permissions.Include("Roles").First();
            r = context.Roles.Include("Permissions").First();
        }
    }

    private static void LinkEntities() {
        p.Roles.Add(r);
    }

    private static void SaveEntities() {
        using (var context = new UserAuthEntities()) {
            context.Attach(p);
            context.Attach(r);
            int count = context.SaveChanges();
            Console.WriteLine(String.Format("Saved {0}.", count));
        }
    }

    private static void Pause() {
        Console.Write("Press enter...");
        Console.Read();
    }
}
4

1 に答える 1

0

この質問には、コンテキストをusingステートメントに保持する必要があるかどうかに関する回答があります。

于 2012-12-13T01:29:10.447 に答える