14

Вопрос по linq-to-sql, asp.net – Linq Update Query генерирует Где 0 = 1?

Я устанавливаю адрес класса, сгенерированного Linq 2 Sql, и когда я пытаюсь выполнить SubmitChanges (), SQL-запрос, который он генерирует:

Update Users
Set Address = @po
Where 0 = 1
[email protected]: Input VarChar (Size = 15; Prec = 0; Scale = 0) [123 45th Street]

Я не могу понять, почему я получаю, где 0 = 1.

Связанное исключение:stackoverflow.com/questions/805968

от Johann

Можете ли вы также опубликовать код Linq?

от Michael La Voie
1 ответ
20

Это может произойти

если ваша объектная модель отличается от базы данныхдаже одним свойством.

Возможно ли, что Address обнуляется в базе данных, а не в вашей модели, или наоборот? Или тип отличается, скажем, ntext против nvarchar и т. Д.? В некоторых случаях это может быть другое несвязанное свойство ... вспомните последние изменения в базе данных или модели, которые вы сделали, убедитесь, что они синхронизированы.

Это была и моя ошибка. Я перевернул Nullable свойство поля. Но почему это может привести к неверному положению where? Выкинь мне ошибку Linq, я могу ее взять. Но не создавайте недопустимое предложение where только для развлечения. Делает это трудно выследить.

от Paul

Спасибо, вот и все.

от Xaisoft

Я посмотрю, но разница между одним свойством таблицы, которую я пытаюсь обновить, или всей базой данных?

от Xaisoft

@Xaisoft - почти всегда связано с таблицей, которую вы обновляете, но я видел странные вещи.

от Nick Craver

+1. Может помочь другим: возникла эта ошибка при обновлении строки, которая была извлечена с нулевым значением в столбце, который был неправильно объявлен в контексте данных как не обнуляемый.

от Stephen Kennedy

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