2015-09-13 3 views
0

Можно ли добавить пользовательский код (крюк) в контекст, чтобы обрабатывать запросы, как это:Entity Framework: пользовательский включает обработку

var author = context.Authors.Include(e=>e.NotMappedClassField).Where... 

Где NotMappedClassField это то, что это звучит: поле класса с атрибутом [NotMapped ]

Иными словами, вызывать пользовательские поля на лету событием.

+0

Если вы хотите навигационное свойство, зачем ставить '[NotMapped]' на нем? –

+0

Я хочу propoerty, но не сопоставлен с таблицей. Я хотел бы судить об этом сам. Например. от allready сопоставленных свойств или просто запроса текущего контекста. Конечно, я мог бы сделать это после запроса linq, но я пробую возможность интегрировать запрос linq и метод для построения NotMappedClassField для «automagic». –

ответ

1

.Include не делает этого. Этот вызов действует на связанных типах объектов. Использование этого с нетерпением загружает связанные типы объектов, например. таблицу сопоставления «один ко многим». Для получения дополнительных примеров прочитайте Loading Related Entities на MSDN.

Если вам интересно узнать, как изменить поведение запроса, вам нужно понять, как EF6 и EF7 скомпилировать и выполнить запросы. Существует не простой крючок для привязки к пользовательским типам запросов, которые отличаются от поведения по умолчанию. Исходный код с открытым кодом на ссылки ниже:

EF6: https://entityframework.codeplex.com/

EF7: https://github.com/aspnet/EntityFramework

+0

Понятно, что Include не делает этого. Он настраивает интерпретацию выражения. И я ищу способ ввода моего кода в интерпретацию выражения. –

+0

Обновленный ответ выше – natemcmaster