CustomerId помогает однозначно идентифицировать строку после @Id? Я на самом деле не следил за битом «триггеров», так как предикат, используемый для обновления, не известен триггеру. Или вы хотите каждый раз обновлять CustomerId (определяется по UPDATE(...)
в триггере)
Самый простой вариант - сделать это как обновление объекта:
var qry = from product in model.Products
where Id == @Id && CustomerId == @CustomerId
select product;
foreach(Product p in qry) {
p.Name = @Name;
}
model.SaveChanges(); // or whatever the method is in EF
Если вы знаете, что ожидаете одну запись, вы можете использовать:
Product prod = (from product in model.Products
where Id == @Id && CustomerId == @CustomerId
select product).Single();
prod.Name = @Name;
mode.SaveChanges(); // ditto
Вы , возможно, также сможете написать его как Entity-SQL, но я не уверен, что буду беспокоиться лично ... (обновление: я только что проверил, и я не Не думаю, что Entity-SQL включает в себя DML, поэтому нет, вы не можете - вам придется использовать либо вышеперечисленное, либо обычную команду SQL / SPROC)