Добавление к оператору Where Обновления в LinQ к объектам

Вместо Response.Redirect вы можете попробовать использовать Server.Transfer, если вы собираетесь перенести пользователя на другую страницу.

Подробнее см. В разница между Server.Transfer и Response.Redirect?

5
задан Craig Stuntz 23 December 2008 в 14:29
поделиться

2 ответа

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

Вы могли бы также смочь записать это как SQL объекта, но я не уверен, что обеспокоился бы, лично... (обновление: я только что проверил, и я не думаю, что SQL объекта включает DML, таким образом, не, Вы не можете - необходимо было бы использовать или вышеупомянутое или регулярный SQL command/SPROC),

7
ответ дан 14 December 2019 в 09:03
поделиться

Один путь состоял бы в том, чтобы использовать сохраненный proc, чтобы сделать обновление. Это дает Вам полный контроль над SQL.

Иначе должен добавить CustomerId к ключу объекта.

0
ответ дан 14 December 2019 в 09:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: