2013-06-29 5 views
0

У меня возникли проблемы с добавлением столбца в таблицу, это кажется простым, поэтому я не понимаю, почему я получаю эту ошибку. Чтобы добавить столбец в SQL я использовал следующий запрос:Недопустимое имя столбца 'level'

ALTER TABLE [Trades] 
ADD level nvarchar(max) 

Чтобы добавить к модели я добавил:

public string level { get; set; } 

для торговли общественного класса.

В чем может быть проблема?

редактировать: Вот полная ошибка:

Invalid column name 'level'. 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'level'. 

Source Error: 
Line 20:   { 
Line 21:    ViewBag.Name = Name; 
Line 22:    return View(db.Movies.ToList()); 
Line 23:   } 
Line 24: 
+0

Можете ли вы дать некоторые подробности о среде, которую вы пытаетесь сделать это? Я думал, что проблема заключается в том, что «уровень» был зарезервированным ключевым словом tqsl и нуждался в квадратных скобках. Однако я просто попробовал запустить столбец create без квадратных скобок как на локальном, так и на лазурном сервере sql (из SSMS), и они работали. В любом случае - попробуйте квадратные скобки, может помочь. –

+0

Спасибо за ваш ввод, я попробовал его с квадратными скобками, но он дает мне «Имена столбцов в каждой таблице должны быть уникальными. Название столбца« Уровень »в таблице« Торги »указано более одного раза». Мне кажется, что ценность, добавленная в базу данных, прекрасна. Я запускаю SQL-сервер и веб-сайт через Azure, это MVC 4 с использованием C#. – kgst

+0

Как вы извлекаете данные из базы данных? покажите свой код доступа к данным. – haim770

ответ

0

Если это SQL Server Instance, Level является зарезервированным ключевым словом. (Используется при изменении TRANSACTION ISOLATION, например.

Попробуйте изменить имя свойства к чему-то еще, или добавить атрибут ColumnName к свойству, чтобы отобразить его на другой SQL Column.

например, создать колонку на вашем стол с

ALTER TABLE [Trades] 
ADD LevelProperty nvarchar(max) 

и использовать следующий декоратор на вашем EF POCO

[Column("LevelProperty")] 
public string Level { get; set; }