Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: mohammad rezaОтветов: 3

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

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

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

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

linq-to-sql

Ответы

Ответ 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, удалив объект и снова добавив его. Он должен знать, что идентификатор не нужен, и автозаполнение его после успешной вставки.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы