我一直在使用 linq to sql 一段时间,经常遇到这种类型的问题....
例如,我有 2 个数据库表
-表:发票(“Id”int自动增量,“InvoiceDate”日期时间)
-表:InvoiceItems ("Id" int auto-increment, "InvoiceId" int (FK), "SomeReference" varchar(50))
“SomeReference”字段包含一个值,它是来自父 Invoice 记录的 Id 和一些随机字符的组合。例如。“145AHTL”
在我可以设置 SomeReference 的值之前,我需要知道 Invoice Id 的值,但这只有在保存到数据库时才会填充。我在同一个 Linq to SQl DB 上下文中有父记录和子记录,但我只想对父 Invoice 记录执行“SubmitChanges”,这样我就可以在子记录中填充 SomeReference。我不想在设置 SomeReference 之前将子 InvoiceItem 记录保存到数据库中。
如何使用 Linq to Sql 实现这一点?
我知道 linq to sql 使用“工作单元”的想法保存到数据库,但我不明白如何避免在尚未准备好保存记录时将它们不必要地保存到数据库。如果没有办法解决这个问题,那么为什么开发人员还要使用 linq to sql,因为这似乎是一个巨大的缺点?
编辑:应该注意,这个例子只是我想出来帮助描述我的问题。