невозможно вставить явное значение в столбец идентификаторов INSERT_OFF - PullRequest
0 голосов
/ 21 апреля 2011

Я работаю над проектом asp mvc пару недель.Я вставил и удалил материал из базы данных через linq, используя объекты без проблем ... до сих пор.

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

Client:
IdClient
Name
LastName

Я запрашиваю эту информацию через форму и делаю это:

Client client = new Client();
client.Name = model.Name;
client.LastName = model.LastName
storeDB.Clients.Add(client);
storeDB.SaveChanges();

Note that I'm not attempting to insert anything on the IdClient

The class looks like:
public class Client{

  [Key]
   public int IdClient {get; set;}
   public string Name {get; set;}
   public string LastName {get; set;}
}

IЯ вставил в другие таблицы без проблем, но этот бросает меня: Не могу вставить явное значение для столбца идентификаторов в таблице «Клиент», когда IDENTITY_INSERT установлен в OFF.

Сведения об исключении: System.Data.SqlClient.SqlException: невозможно вставить явное значение для столбца идентификаторов в таблице «Клиент», когда для IDENTITY_INSERT установлено значение OFF.

Я проверил, и все в таблице выглядитнормально, личность ТОЛЬКО IdClient !!Кто-нибудь знает, почему я это получаю?= Я не думаю, что это имеет какое-либо отношение к тому факту, что я делаю эту вставку в AccountsController, это не имеет смысла ....

ОБНОВЛЕНИЕ: Iвставлен в другую таблицу, и это не помечает мне эту ошибку, я не понимаю ... Я создал их так же!Я создал базу данных только с одной таблицей CLIENT, и она НЕ РАБОТАЕТ!Кто-нибудь знает, где я могу найти проблему?= S

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Как говорит Андрей, проверь своего дизайнера. Сценарий двух таблиц и подтверждение того, что таблица, которая работает, действительно имеет столбец идентификаторов. Попробуйте запустить профилировщик для обеих вставок, они вставляют все столбцы одинаково?

Нужно больше информации, чтобы ответить на этот вопрос.

0 голосов
/ 21 апреля 2011

Проверьте первичный ключ в классе сопоставления. У него должен быть такой атрибут:

    [Column(Storage="_LetterOID", AutoSync=AutoSync.OnInsert, 
     DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]

Важным битом является IsDbGenerated = true. Если в вашем атрибуте этого нет, мы нашли ошибку! Если вы используете дизайнер, просто перегенерируйте этот класс (удалив таблицу в конструкторе и удалив ее из проводника сервера).

Это решило проблему для меня, однажды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...