2009-01-15 1 views
2

У меня есть таблица с именами «Сотрудник» с четырьмя полями EmployeeId, Name, Address, Age Я установил ключ EmployeeId - Primary. Мне нужно, чтобы поле EmployeeId увеличивалось автоматически при добавлении новых записей.Как установить значение auto increment = true в LINQ

Codebehind для вставки: { DataClassesDataContext db = new DataClassesDataContext();

Employee emp = new Employee {Name = "James", Address = "India", Age = 24}; 
    db.Employees.InsertOnSubmit(emp); 
    db.SubmitChanges(); 
    ShowEmployee(); 

} 

designer.cs:

[Column(Storage = "_EmployeeId", DbType = "Int NOT NULL", IsPrimaryKey = true,IsDbGenerated=true,CanBeNull=false)] 

Когда я бегу это приложение получаю следующее сообщение об ошибке:

Не удается вставить значение NULL в столбец 'EmployeeID', таблица «Habib.dbo. Наемный рабочий'; столбец не допускает нулей. INSERT терпит неудачу. Заявление было прекращено.

Любая помощь очень ценится.

Спасибо, Masum

ответ

3

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

+0

Привет ..... в таблице базы данных, как сделать идентификационный столбец какой-либо идеей? Я создал имя столбца EmployeeId и помечен как первичный ключ. –

+0

Если вы работаете в SQL Server Management Studio, это будет в разделе «Свойства» для таблицы, когда в режиме «Дизайн» это свойство «Столбец идентичности», и вы выберете столбец EmployeeId из списка. – mkchandler

+0

На всякий случай кто-то вытягивает свои волосы из-за этого, как я вижу мой ответ здесь http://stackoverflow.com/a/27100918/74585 –