在“编辑” LINQ to SQL实体时,我可以简单地将一项分配给另一项吗?

| 为了清楚起见,假设我有以下代码:
void AlterItem(Orderable o) {  
    foreach(Orderable p in from Orderable n in dataContext.Orderables 
            where n.UID == o.UID 
            select n)  
    p = o;  
    dataContext.SubmitChanges();
当然,此代码不起作用,因为您无法分配迭代变量,这对我来说很清楚。有什么办法比重写特定字段更好?我尝试过Single(),但将一个变量分配给另一个变量后,它不应用更改。 抱歉,以前是否有人问过。我努力寻找答案,但失败了。     
已邀请:
不可以,除了ѭ1problem参数问题之外,简单的
p = o;
只能复制引用。 最好的办法是编写代码以复制属性,也许使用AutoMapper。     
变量和对象之间似乎有些混乱。通过以下操作,所发生的全部是变量
p
指向与as4ѭ参数相同的对象,而不是来自ѭ5return的返回对象。提交更改时,实际上没有任何提交,因为没有任何数据库对象被更改。仅参考已更改:
void AlterItem(Orderable o)
{
   var p = dataContext.Orderables.First();
   p = o;
   dataContext.SubmitChanges();
}
为了更改从ѭ5返回的对象,您必须更改其属性。您也可以通过
foreach
变量来修改对象,方法是:
var p = dataContext.Orderables.First();
p.Property1 = o.Property1;
// etc...
dataContext.SubmitChanges();
    

要回复问题请先登录注册