EF Code First: отображение нестабильных объектов с помощью Fluent API - PullRequest
8 голосов
/ 20 января 2012

Как мне отобразить мои нестабильные объекты в EF CodeFirst, такие как Views, StoredProcedure и т. Д., С помощью свободно распространяемого API.

Ответы [ 2 ]

4 голосов
/ 20 января 2012

Отображение для сохранения процедуры и vew пока не поддерживается в коде.И это некоторые обходные пути от среды программирования Джулии Лерман: Code First.

Отображение в обновляемое представление

modelBuilder.Entity<MyEntity>().ToTable("MY_VIEW")

Просмотр имен столбцовдолжно совпадать с именем поля Entity, и вы можете использовать Entity Framework для вставки, обновления и удаления данных, а также их выбора. Просто врите Первому Коду и передайте представление в виде таблицы .

Использование представления для заполнения объектов

var myEntity = dbContext.MyEntity.SqlQuery("SELECT * FROM dbo.MY_VIEW")

Имена столбцов представления должны совпадать с именами полей Entity, и вы по-прежнему получаете такие функции DbContext, как отслеживание изменений, отложенная загрузка.

Использование представления для заполнения немодельных объектов

var myNonModel = dbContext.Database.SqlQuery("SELECT * FROM dbo.MY_VIEW")

Имена столбцов представления должны совпадать с именами полей Entity.

Работа с хранимыми процедурами

Та же техника для работы с представлением.

var myEntity = dbContext.MyEntity.SqlQuery("dbo.StoredProcedureName @p0 @p1", myParam1, myParam2)

2 голосов
/ 20 января 2012

Отображение хранимой процедуры вообще не поддерживается в коде.Сопоставление представлений должно быть взломано - вы будете притворяться, что представление является таблицей, и надеетесь, что ваше приложение будет работать.Fluent-api был разработан для поддержки только сценария «сначала код» = ваше приложение создаст базу данных.Поэтому он не поддерживает какие-либо функции базы данных с логикой на уровне БД, такие как хранимые процедуры, представления или функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...