Получение результата вычисляемого столбца из базы данных в объект - PullRequest
0 голосов
/ 11 сентября 2018

В проекте, использующем Entity Framework, скажем, у меня есть объект, такой как

[Table("MyTable")]
public partial class MyTable
{
    public string FirstName { get; set; }
    public string LastName { get; set; }

    [DatabaseGenerated( DatabaseGeneratedOption.Computed)]
    public string FullName { get; set; }
}

Где FullName вычисляется для базы данных SQL Server 2012 как объединение FirstName и LastName.

В начале проекта вся эта таблица полностью загружается локально. То есть через DbContext.DbSet<MyTable>.Load()

Во время выполнения я

  1. Создание экземпляра этого в коде
  2. Установка свойств имени и фамилии этого объекта.
  3. Добавление этого экземпляра в DbSet из DbContext
  4. Звонок DbContext.SaveChanges()

Теперь, после вызова SaveChanges() я ожидал, что вычисленное свойство FullName объекта будет заполнено вычисленным значением. Но, к сожалению, этого не происходит?

Как я могу получить вычисленное значение из базы данных в мой объект сущности?

1 Ответ

0 голосов
/ 11 сентября 2018

Где FullName вычисляется для базы данных SQL Server 2012 как объединение FirstName и LastName.

Ну, вы не объединяли их вFullName свойство в вашем классе, так как вы используете EF-Code First, поэтому вы должны указать его в своем получателе, что-то вроде этого:

get { return string.Format("{0} {1}", FirstName, LastName); }

Или с более новой версией C # вы можете:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string FullName => $"{FirstName} {LastName}";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...