【发布时间】:2011-11-01 21:42:22
【问题描述】:
我是 EF4 的新手,我正在尝试从多对多关系中插入一条记录。我有 3 张桌子:
- A(ID、描述)
- B(ID,代码)
- AB(aID,bID)
问题是,当我调用 SaveChanges() 时,它会抛出一个异常,并试图在 B 中插入一条新记录。我不希望这样,它应该只是添加链接。这是我的代码:
var a = new A(){Description="Example"};
var b = context.B.Single(B => B.ID == paramID);
a.B.Add(b);
context.A.AddObject(a);
context.SaveChanges() <---- here it throws the exception
根据我的研究,上面的代码应该和 A 的一条新记录,并在 A 和 B 之间创建一个链接并将其存储在 AB 表中,对吗?
我错过了什么?
编辑:
这是我得到的例外:
无法将值 NULL 插入列“MIC”、表“dbo.B”;列不允许空值。 INSERT 失败。\r\n语句已终止。
如果您注意到,我只是尝试添加多对多链接,而不是在表 B 中创建新记录。我什至尝试将 a.B 留空,但它仍然会引发上述异常。
【问题讨论】:
-
异常类型和消息似乎与这个问题有关...
标签: .net linq entity-framework-4