Запрос Entity Framework на основе строки, хранящейся в файле конфигурации - PullRequest
0 голосов
/ 07 июня 2018

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

Я пытался использовать SqlQuery, примененный к DBSet, но проблема заключается в том,что SqlQuery требует от меня, чтобы выбрать все свойства требуемых объектов в моем запросе.Если я не рассматриваю какой-либо столбец, он будет жаловаться, потому что не может сопоставить запрос с сущностями.

Я не хочу выбирать все свойства объектов, которые я хочу запросить.

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

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

Итак, учитывая Entity1, Entity2, Entity3 со следующим соотношением

<b>Entity1</b>{
   <br/>&emsp;Entity1Name, <br/>&emsp;List<*Entity2*> Entity2Items, <br/>&emsp;etc..
<br/>}

и

<b>Entity2</b> { <br/>&emsp;Entity2Name, <br/>&emsp;List<*Entity3*> Entity3Items <br/>}

Я могу хранить, например,следующий запрос в файле конфигурации и извлечение информации:

"Entity1.Entity1Name", <br/>
"Entity1.Entity2Items.Entity2Name", <br/>
"Entity1.Entity2Items.Entity3Items.Entity3Name"

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

Спасибо.

0 голосов
/ 07 июня 2018

Если вы используете EF, то почему бы не использовать Database.ExecuteSqlCommand()?Он находится в пространстве имен System.Data.Entity.

Например:

int result = db.Database.ExecuteSqlCommand("Non SELECT SQL etc...");
...