Свойство объекта RIA / EF4 сопоставлено с NOT NULL nvarchar - пустая строка

Предпосылки:

  • Entity Framework 4
  • Silverlight 4
  • Службы RIA
  • MSSQL Server 2008

У меня есть сущность, имеющая свойство String с именем Description.

В базе данных он соответствует NOT NULL NVARCHAR (200) .

Проблема:

Когда я пытаюсь вставить новую строку этого объекта, я делаю следующее:

MyExampleEntity entity = new MyExampleEntity()
{
    Name = "example",
    Description = ""        // NOTE THIS LINE!
};

DatabaseContext db = new DatabaseContext();
db.MyExampleEntities.Add(entity);
db.SubmitChanges();

Это, однако, вызывает исключение, говорящее «Поле описания является обязательным».

Вопрос:

Разве «пустая строка» не должна быть просто - строкой с нулевыми символами ?

Я считаю, что только Description = null следует рассматривать как не предоставляющее значения .

  • Почему моя строка, которая имеет значение (хотя ее длина равна 0), считается как если бы я пропустил значение?
  • На каком уровне происходит это преобразование? В RIA, EF или MSSQL?
  • Есть ли способ сделать описание с нулевым значением длины, когда я устанавливаю Description на «» и вызываю исключение, когда Description = null (без значения)?
10
задан Kornelije Petak 1 July 2011 в 13:04
поделиться