实体框架查询基于存储在配置文件中的字符串

时间:2018-06-07 08:16:39

标签: entity-framework dynamicquery

我想知道你是否知道如何实现这一点,考虑在配置文件中存储为字符串的查询。

我尝试使用应用于DBSet的SqlQuery,但问题是SqlQuery要求我在查询中选择所需实体的所有属性。如果我不考虑任何列,它会抱怨因为无法将查询映射到实体。

我不想选择要查询的实体的所有属性。

由于

2 个答案:

答案 0 :(得分:0)

如果您使用EF,那么为什么不使用Database.ExecuteSqlCommand()?它位于System.Data.Entity命名空间中。

例如:

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

答案 1 :(得分:0)

好吧,我最终实现了一个使用反射的机制,它基本上接收了一组要选择的字段,并使用这些字段构造动态对象,所以当应用查询与实体之间的连接时,只会带来我的字段寻找。

因此,考虑Entity1Entity2Entity3具有以下关系

<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"

无论如何,我只是想看看是否有任何开箱即用的解决方案需要最少的代码更改。

谢谢。