0

我对 Linq to SQL InsertOnSubmit 有疑问,它似乎只适用于表中的第一项。

例如以下内容:

var noteDetail1 = new NoteDetail() { Title = "Test Note Title 1", NoteText = "Test note" };
var waiverDetail1 = new WaiverDetail() { Title = "Test Waiver Title 1", NoteText = "Test waiver details text" };
var riskDetail1 = new RiskDetail() { Title = "Test Risk Title 1", NoteText = "Test risk details text" };
context.Notes.InsertOnSubmit(noteDetail1);
context.Notes.InsertOnSubmit(riskDetail1);
context.Notes.InsertOnSubmit(waiverDetail1);
context.SubmitChanges();

我只将第一个实体(“Test Note Title 1”)插入数据库。如果我在每个 InsertOnSubmit 之后放置一个 SubmitChanges,则所有行都成功插入。

上面的 Types 都是继承自 Note 类,所以插入到同一个表中。

但是,我在使用非派生类时遇到了同样的问题。

我花了很长时间看这个,但找不到我做错了什么。InsertOnSubmit/SubmitChanges 的整个想法是这样您就可以进行多项更改,因此我必须缺少一些简单的东西。

4

1 回答 1

0

问题是我在我的实体类中覆盖了 Equals,因此具有相同 Id 的实体被认为是相同的。显然,Linq to SQL 在某些时候使用它并得到所有新实体都相等的结果(因为它们的 ID 都为 0)。

感谢乔纳森成为我的“橡皮鸭”

于 2010-09-08T16:30:19.157 回答