У меня есть таблица с двумя столбцами, идентификатором и именем. Я установил идентификацию "ДА" для столбца идентификатора.
Я хочу вставить данные в таблицу с LINQ. Я хочу получить только столбец имени от пользователя в моем приложении, а затем автоматически заполнить столбец идентификатора в базе данных, и я не могу предоставить данные этого столбца и заполнить его, я его даю.
Что я должен делать ?
Я пишу на C # и работаю с LINQ.
Ответ 1 · рейтинг 5 · marc_s
Значит, ваше поле базы данных уже является INT IDENTITY - верно?
Затем в конструкторе LINQ to SQL необходимо убедиться, что для столбца установлено значение:
- Автоматически созданное значение = ИСТИНА
- Автосинхронизация = ВКЛ.
Теперь, если вы добавите запись в свою базу данных, идентификатор будет автоматически обновлен со значения, присвоенного ему базой данных:
YourClass instance = new YourClass();
instance.Name = "some name";
YourDataContext.InsertOnSubmit(instance);
YourDataContext.SubmitChanges();
После вызова SubmitChanges ваш instance.ID должен теперь содержать идентификатор из базы данных.
Ответ 2 · leppie
Если вы использовали дизайнер DBML, все должно быть правильно настроено.
"Идентификатор" будет заполнен после того, как вы вызовете SubmitChanges.
Ответ 3 · Kelsey
Убедитесь, что ваша таблица базы данных настроена правильно и что ваш идентификатор установлен в качестве поля первичного ключа и для автоматического увеличения. При необходимости повторно сгенерируйте свой DBML, удалив объект и снова добавив его. Он должен знать, что идентификатор не нужен, и автозаполнение его после успешной вставки.