VS2010でEDMモデルを作成しました。Permissions
とRoles
は私のモデルのエンティティであり、多対多の関係にあります。各コレクションの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();
}
}