【发布时间】:2010-06-24 12:20:00
【问题描述】:
这是我的对象关联:
Summary
-> Job
-> Operator
-> Job
-> Operator
所以,我有一个 Summary 对象,其中包含一个 Jobs 集合,它有一个 Operator 对象(时钟 #、名称等)
创建新摘要时,我会检查并创建现有的新作业并添加所有属性。然后,在已构建的 Summary 对象上执行一次插入。然后,如果需要,这会插入新的作业和运算符,否则我可能会从数据库中读取现有的作业和运算符。
当我有相同的操作员同时运行两个作业并且数据库中不存在该操作员时,问题就出现了。 Linq-To-SQL 尝试插入同一个对象两次,但由于我使用时钟 # 作为主键而失败。
我可以为主键创建一个自动编号,但是我会得到重复的数据,我宁愿不这样做。有没有人有任何想法来解决这个问题?
谢谢!
【问题讨论】:
-
新问题...当我尝试在创建摘要的子对象期间(通过循环)插入运算符时,Linq 尝试提交所有更改(包括部分构建的摘要)。有一些未填充的日期字段导致插入崩溃。另外,我使用 StructureMap 来缓存数据库,因此不同的存储库应该使用相同的实例。
标签: linq-to-sql insert