ВИДЫ в Entity-Framework? - PullRequest
       41

ВИДЫ в Entity-Framework?

3 голосов
/ 06 января 2010

У меня есть таблица под названием Item.

У меня есть представление ItemView, которое возвращает весь столбец Item + еще один агрегированный столбец, который я хочу только для чтения.

Мне нужно использовать его в Entity Framework, и я не знаю, как мне его использовать, поскольку при вставке представления в конструктор все поля становятся ключами сущностей, кроме того, что нет доступных отношений, поэтому я могу t получить доступ к связанным таблицам как nav-свойства как из базовой таблицы.

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

Скажи, у меня есть объект сущности. после сохранения этого элемента я хочу получить его вычисленные значения из представления, как это делается?

Я никогда не использовал Представления в EF. Какая должна быть лучшая практика в этих сценариях?
Любой совет, ссылка, блог, статья, шутка приветствуется.

Ответы [ 2 ]

5 голосов
/ 06 января 2010

EF Designer автоматически помечает каждое поле NOT NULL как часть первичного ключа. Вам придется вручную отредактировать файл EDMX и исправить его. Когда первичный ключ установлен правильно, вам придется определить отношения между таблицей и просмотром самостоятельно. Вы должны прочитать эту запись:

Entity Framework: создание модели с использованием представлений вместо таблиц

Если вы не хотите изменять файл edmx каждый раз, когда вы меняете свою модель, вы можете изменить определение своего представления. Если поле распознается как ненулевое, вы можете изменить определение представления с:

select field_name from table_name 

до

select coalesce(field_name,null) field_name from table_name

Таким образом, поле не распознается как ненулевое, и только видимые поля первичного ключа распознаются как ненулевые.

0 голосов
/ 02 сентября 2012

Я закончил тем, что использовал это расширение, которое решило все для меня:

Разочарован отсутствием поддержки SQL-представлений в ADO.NET Entity-Framework Designer?

...