如何在c#中使用linq to sql在有两个列名的条件下编写更新查询

本文关键字:两个 查询 更新 条件下 linq sql to | 更新日期: 2023-09-27 18:14:44

我想更新sql中的一列。在where条件中有两个列名

下面是mu update query:

  string sql = "UPDATE contact set ContactName=@ContactName where ContactID=@ContactId AND UserID=@Userid";

现在我想用linq写。如何使用linq编写上面的查询。请帮帮我。I tried

  var updatequery = (from x in obj.Contacts where x.ContactID == ContactID select x).First();
                  updatequery.ContactName = ContactName;
                  obj.SubmitChanges();

但是在上面的查询中,条件只有一个列名。我想要where条件有两个列名。

如何在c#中使用linq to sql在有两个列名的条件下编写更新查询

您只需使用条件与运算符&&:

var updateContacts = from x in obj.Contacts 
                  where x.ContactID == ContactID && x.SecondColumn == SecondValue 
                  select x;
// now use First or a loop if you expect multiple
foreach(var contact in updateContacts)
    contact.ContactName = ContactName;
obj.SubmitChanges();

我不知道这是否有帮助,但你也可以试试这个。

var updatequery = obj.Contacts
              .Where(x => x.ContactID == ContactID && x.SecondColumn == SecondValue)
              .FirstOrDefault();
updatequery.ContactName = ContactName;
obj.SubmitChanges();