Linq To Sql: обрабатывать NewID()

эй, я пытаюсь добавить данные на свой sqlserver с помощью Linq To Sql, в таблице дизайн данных для получения NEWID() при вставке новой строки, но linq to sql игнорирует это, а ячейка в null,

Спасибо!


person Roy Amir    schedule 02.10.2010    source источник


Ответы (1)


Похоже, вы ожидаете, что значение guid будет автоматически сгенерировано для вас прямо во время вставки. Похоже, что этот столбец имеет DEFAULT из NewID().

В модели LINQ To SQL перейдите к свойству таблицы, значение которого создается автоматически. Щелкните правой кнопкой мыши «Свойства» и убедитесь, что для атрибута Автоматически сгенерированное значение установлено значение «Истина». Это гарантирует, что сгенерированный оператор INSERT не будет включать значение для этого атрибута таблицы.

альтернативный текст

Затем вы сможете получить доступ к этому новому свойству со значением автогенерации по умолчанию как таковым:

Customer c = new Customer{FirstName="foo"};
db.Customers.InsertOnSubmit(c);
db.SubmitChanges();
string someGuid = c.MyGuidField.ToString();
person p.campbell    schedule 02.10.2010
comment
Спасибо!! простое и идеальное решение - person Roy Amir; 03.10.2010
comment
@Рой: спасибо. +1 голос за ваш хороший вопрос. Наверняка многие другие столкнулись с этим и получат пользу от вашего вопроса. - person p.campbell; 03.10.2010