Linq没有插入中间多对多关系表的记录

时间:2009-07-31 01:40:45

标签: c# linq-to-sql

我正在创建一个将插入数据库的新记录。我查看了db.log但没有打印出来。我标记了主键,但不确定还需要做什么。

在两个表(Member和RecForms)之间建立多对多关系。这是通过MemberRecForms的中间表,其中包含其他表的ID。在MemberRecForm表中,这两个键被标记为复合原始键(在dbml中也是这样)。

          DataContext db = new DataContext();

          MemberRecForm r = new MemberRecForm();

          r.RecFormID = 2;

          this.MemberRecForms.Add(r);

          try
          {
            db.SubmitChanges(ConflictMode.ContinueOnConflict);
          }
          catch (ChangeConflictException)
          {
            db.ChangeConflicts.ResolveAll(RefreshMode.KeepChanges);
          }

当我执行此操作后查看r时.MemberRecForms.Add(r)我看到r已使用正确的memberID更新。

1 个答案:

答案 0 :(得分:1)

更改“this.MemberRecForms.Add(r);” to“db.MemberRecForms.InsertOnSubmit(r);”。否则datacontext将没有对它的引用,并且不会插入它...