Entity Framework - казалось бы простой вопрос - PullRequest
0 голосов
/ 01 апреля 2011

Долгое время слушатель, впервые звонящий ...

Итак, я конвертирую существующее приложение в ef. Я наслаждаюсь опытом до сих пор. У меня есть класс POCO, который имеет некоторые простые пользовательские свойства.

отл.

public string FirstName { get; set; }
public string LastName { get; set; }
other properties...
public string FullName
{
    get { return FirstName + " " + LastName; }
}

Как мне сделать это с EF? Можно ли это сделать в EDM, или мне нужно создать частичный класс? Я предпочитаю EDM ...

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Вам нужен частичный класс, потому что это свойство вычисляется в вашем коде, а не в базе данных. Проблема здесь в том, что объект чтения / записи должен иметь только свойства, сопоставленные с таблицей, но ваша таблица, вероятно, не имеет FullName столбца = вы не можете отобразить его и не можете использовать его в запросах. Вычисляемые свойства в EDM возможны, но только если у вас есть только для чтения сущность, определенная Представление запроса (представление определено в ESQL) или Определение запроса (выбор пользовательского SQL). Если вы хотите использовать FullName в запросе, вы должны определить его как определенную моделью функцию . Представление запроса, определение запроса и определяемые моделью функции - это расширенные функции EF, которые недоступны в конструкторе. Вы должны открыть EDMX как XML и редактировать его вручную.

0 голосов
/ 01 апреля 2011

Если у вас уже есть архитектура POCO, вы можете рассмотреть возможность использования EF4 CodeFirst.Он позволяет вам использовать ваши существующие классы POCO «как есть», не требуя переделки таких вещей, как вычисляемые свойства, и вы просто подключаете их к DBContext, который вы конфигурируете в коде.

Подход довольно привлекателен для большинства людей POCO, и он заставил меня взглянуть на EF еще раз.Скот Гу представляет это в этом посте http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx, и он сделал серию статей, так как в них много подробностей о том, как настроить постоянство с CodeFirst.

...