1

我想要两个相同的 linq to sql 对象/数据库记录副本。这可能吗?我试图通过从 DB 中创建两条记录(通过下面的代码)来做到这一点,但这似乎只是为相同的底层 db 记录创建别名。是否可以制作同一记录的两个不同副本?我试图让两个引用指向两个不同的对象。(如果这是不可能的,我想我可以克隆对象)

    Dim one As Rec= (From l In myDB.table Where l.pk = 222 Select l).First
    Debug.Print(one.ssn) //prints 666666666  
    Dim two As Rec = (From l In myDB.table Where l.pk = 222 Select l).First
    two.ssn= "555555555"  //this also changes one.ssn to "555555555", but I don't want this to happen
4

1 回答 1

1

最直接的方法是克隆对象。这将最清楚地表达你的意图。唯一的其他方法(因为 Linq to SQL 没有分离方法)是创建一个全新的 DataContext 并使用您的对象调用 InsertOnSubmit()。假设您的主键已生成,这应该可以工作,否则您必须自己设置一个新的主键。但这似乎有点像黑客 - 我更喜欢第一个解决方案。

于 2013-01-10T19:28:50.727 回答