我试图插入几个新创建的项目到数据库。 我有一个名为“Order”的LINQ2SQL生成的类。LINQ to SQL - 插入产生奇怪的行为
内部订单中有一个名为“OrderItems”的属性,它也由LINQ2SQL生成并表示该订单的项目。
到目前为止这么好。 我现在遇到的问题是,当我尝试在Order内添加多个新创建的OrderItem时。
即:
Order o = orderWorker.GetById(10);
for(int i=0; i < 5; ++i) {
OrderItem oi =new OrderItem {
Order = o,
Price = 100,
ShippingPrice = 100,
ShippingMethod = ...,
Item = someItem
};
o.OrderItems.Add(oi);
}
context.SubmitChanges();
不幸的是,被添加仅单个实体。 是的,我通过添加Context.Log = Console.Out来检查生成的SQL,是的,只创建了一条语句。
任何线索? 当我知道我没有使用InsertOnSubmit,通过文件的方式说:
您可以明确要求通过 插入使用InsertOnSubmit。或者, LINQ to SQL可以通过 推断插入连接到 之一的已知对象,该对象必须是 已更新。例如,如果你一个 未跟踪对象到 EntitySet的(TEntity)已或设置 的EntityRef(TEntity)已添加到未跟踪 对象,则使未跟踪对象 到达由在 图表跟踪对象的方法。在处理 SubmitChanges时,LINQ to SQL遍历 跟踪的对象并发现任何 未被跟踪的可访问持久对象 。这些对象是 候选人,用于插入 数据库。
非常感谢您的时间。
谢谢你喂回来 - 有趣。 – 2010-03-29 21:47:02
这没什么意义......为什么我不能插入2个具有相同散列值并且比较等于的新对象? – 2016-06-06 16:09:32