автоматически генерировать в LINQ to SQL - PullRequest
1 голос
/ 26 июля 2009

У меня есть таблица с 2 столбцами, идентификатором и именем. Я устанавливаю «YES» Идентичность для столбца идентификатора.

Я хочу вставить данные в таблицу с LINQ. Я хочу получить только имя столбца от пользователяв моем приложении, а затем в столбце идентификатора автоматически заполняется база данных, и я не могу предоставить данные для этого столбца и заполнить без него.

Что мне делать?

Я пишу на C # и работаю с LINQ.

Ответы [ 3 ]

5 голосов
/ 26 июля 2009

Итак, ваше поле базы данных уже имеет значение INT IDENTITY - верно?

Далее, в конструкторе LINQ to SQL вам необходимо убедиться, что для вашего столбца установлено значение:

  • Автоматически сгенерированное значение = TRUE
  • Автосинхронизация = ON INSERT

enter image description here

Теперь, если вы добавляете запись в свою базу данныхидентификатор будет автоматически обновляться из значения, присвоенного ему базой данных:

YourClass instance = new YourClass();
instance.Name = "some name";

YourDataContext.InsertOnSubmit(instance);
YourDataContext.SubmitChanges();

После вызова SubmitChanges ваш instance.ID теперь должен содержать идентификатор из базы данных.

0 голосов
/ 26 июля 2009

Убедитесь, что таблица базы данных настроена правильно, и что ваш идентификатор установлен в качестве поля первичного ключа и для автоматического увеличения. Восстановите ваш DBML, если вам нужно, удалив объект и повторно добавив его. Он должен знать, что идентификатор не нужен, и автоматически заполнить его после успешной вставки.

0 голосов
/ 26 июля 2009

Если вы использовали конструктор DBML, он должен быть правильно настроен.

«Идентификатор» будет заполнен после вызова SubmitChanges.

...