Как добавить вычисляемый столбец в модель в dbml - PullRequest
0 голосов
/ 30 октября 2011

Как добавить вычисляемый столбец в класс модели.

У меня на виду две модели,

  1. User
  2. City

User подключен к City с CityID (FK противоречие), а CityName в City модели

Я хотел вычислить столбец в модели User, потому что отчет .rdlc , похоже, не получает значения из модели City, которая подключена к User (в dbml).

В настоящее время, когда я добавляю новое свойство в модель, он выдает ошибку, когда выполняется запрос linq, использующий эту модель.

Неверное имя столбца 'UserCityName'

означает, что он пытается выбрать CityName из User из базы данных.

Спасибо.

1 Ответ

3 голосов
/ 30 октября 2011

LinqToSQL генерирует сущность как частичный класс, поэтому вы можете добавить дополнительный столбец к вашей сущности, добавив новый класс и добавив следующий код.

Пример:

namespace YourEntityNameSpace
{
    public partial class User
    {
        public string UserAdditionalText
        { 
            get
            {
                // your code goes here
            }
        }
    }
}

Обновление:

  1. Разверните Model.dbml в окне вашего решения, вы найдете Model.dbml.layout и Model.designer.cs.
  2. Открыть Model.designer.cs, он содержит автоматически сгенерированный класс из вашей базы данных
  3. Поиск текста public partial class User. Теперь вы можете видеть, что автоматически сгенерированный класс является частичным классом, что означает, что вы можете определить свой класс в отдельном файле. Читать дальше
  4. Добавьте новый класс в свой проект, используйте то же пространство имен и имя класса, что и в автоматически создаваемом файле.
  5. Добавьте дополнительное свойство в класс User, вы можете получить доступ ко всем свойствам и членам внутри автоматически сгенерированного класса.
...