автоматически генерировать в LINQ to SQL

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

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

Что я должен делать ?

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


person mohammad reza    schedule 25.07.2009    source источник


Ответы (3)


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

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

  • Автоматически созданное значение = ИСТИНА
  • Автосинхронизация = ВКЛ.

введите описание изображения здесь

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

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

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

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

person marc_s    schedule 25.07.2009

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

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

person leppie    schedule 25.07.2009
comment
Как мне это сделать? это моя проблема, что я не могу этого сделать. - person mohammad reza; 26.07.2009

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

person Kelsey    schedule 25.07.2009