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

Entity framework 基于配置文件中存储字符串的实体框架查询,entity-framework,dynamicquery,Entity Framework,Dynamicquery,考虑到配置文件中存储为字符串的查询,我想知道您是否知道如何实现这一点 我尝试使用应用于DBSet的SqlQuery,但问题是SqlQuery要求我在查询中选择所需实体的所有属性。如果我不考虑任何列,它会抱怨,因为不能将查询映射到实体。 我不想选择要查询的实体的所有属性 谢谢如果您正在使用EF,那么为什么不使用数据库。ExecuteSqlCommand()?它位于System.Data.Entity命名空间中 例如: int result = db.Database.ExecuteSqlComma

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

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


谢谢

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

例如:

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

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

因此,考虑到
Entity1
Entity2
Entity3
具有以下关系

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

&emsp;Entity1Name、
&emsp;列出Entity2Items、
&emsp;等。。

Entity2{
&emsp;Entity2Name,
&emsp;列出Entity3Items
例如,我可以在配置文件中存储以下查询,并检索信息:

"Entity1.Entity1Name", <br/>
"Entity1.Entity2Items.Entity2Name", <br/>
"Entity1.Entity2Items.Entity3Items.Entity3Name"
“Entity1.Entity1Name”,
“Entity1.Entity2Items.Entity2Name”,
“Entity1.Entity2Items.Entity3Items.Entity3Name”
不管怎么说,我只是想看看是否有任何开箱即用的解决方案需要对代码进行最小的更改


谢谢。

SqlCommand允许您对数据库执行命令。那不是我想做的。我想执行一个查询并检索结果,所以我认为SqlCommand不是一个有效的选项。另外,我希望作为结果接收我正在查询的实体,而不是以平面模式接收数据的datareader。我不明白您想要做什么。使用手动启动的SQL与实体实体化不匹配(因为它们不是实体…)。您可以创建动态LINQ查询并执行它们?其思想是拥有一种机制来管理查询,而无需更改代码。因此,查询需要驻留在配置文件中,因此LINQ查询不是一个选项,因为在您需要更改查询的任何时候都需要更改代码。我猜这就是您需要的:根据您在以下帖子中提到的注释:“如果select查询要从单个表和单个实体检索,则解决方案最适合。我们是否可以即兴使用它来实现带有连接的Select查询,其中我们将有多个表,并且需要绑定到不同的TypeBuilder。“想法?”。它也不适合我,因为我有一个与多个实体连接的查询。
"Entity1.Entity1Name", <br/>
"Entity1.Entity2Items.Entity2Name", <br/>
"Entity1.Entity2Items.Entity3Items.Entity3Name"