Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#linq查询,每个属性的where子查询_C#_Entity Framework_Linq_Linq To Sql_Linq To Entities - Fatal编程技术网

C#linq查询,每个属性的where子查询

C#linq查询,每个属性的where子查询,c#,entity-framework,linq,linq-to-sql,linq-to-entities,C#,Entity Framework,Linq,Linq To Sql,Linq To Entities,我有这张桌子: 我想做一个linq查询,其中我将根据AdminFilterFieldDid获取每个属性值 到目前为止,我有: newDto = from d in DbContext.AdminFilterItems where d.AdminFilterID == filterId select new ReservationDto { BookingDate = d.Value }; 既然B

我有这张桌子:

我想做一个linq查询,其中我将根据AdminFilterFieldDid获取每个属性值

到目前为止,我有:

newDto = from d in DbContext.AdminFilterItems
         where d.AdminFilterID == filterId
         select new ReservationDto
         {
             BookingDate = d.Value
         };
既然BookingDate是AdminFilterFieldId是2,我希望我可以做一些类似于
BookingDate=d.Value.Where(s=>s.AdminFilterFieldId=3)
的事情,或者在没有AdminFilterFieldId值的情况下为null。 我想对该adminfilterid的所有字段执行此操作


通过这种查询,这是可以实现的,还是我需要执行多个查询?

这看起来很简单,只是where中的另一个子句

from d in DbContext.AdminFilterItems
         where d.AdminFilterID == filterId
         && d.AdminFilterFieldID = 3
         select new ReservationDto
         {
             BookingDate = d.Value
         };
如果需要对多个值进行筛选,只需保留初始查询并对其运行其他筛选,然后进行投影(选择)


它看起来很简单,只是where中的另一个子句

from d in DbContext.AdminFilterItems
         where d.AdminFilterID == filterId
         && d.AdminFilterFieldID = 3
         select new ReservationDto
         {
             BookingDate = d.Value
         };
如果需要对多个值进行筛选,只需保留初始查询并对其运行其他筛选,然后进行投影(选择)


您需要使用反射来枚举类(模型)属性,或者创建一个将字符串属性名称与类中的属性相匹配的接口。
d.Value
是单行值,而不是组。您可能需要在
AdminFilterID
上分组,或者在
选择之前放置
位置
,以仅提取行,可能在整个查询中使用
.DefaultIfEmpty()
来查找是否不存在值为
3
AdminFilterFieldID
。这似乎是一个糟糕的数据库设计,不适合关系数据库(除非有令人信服的理由使用它-例如,可能有多个重复的
AdminFilterField
s)。@NetMage有多个筛选字段,现在,因为我正在构建一个要执行的查询,所以我需要检查该搜索字段的值是否存在或是否为null。Thx用于注释但除非过滤器字段是动态的,否则您可以使用一个常规SQL表,每个过滤器字段有一列。是否动态创建筛选器字段?您需要使用反射来枚举类(模型)属性,或者创建一个将字符串属性名称与类中的属性相匹配的接口。
d.Value
是单行值,而不是组。您可能需要在
AdminFilterID
上分组,或者在
选择之前放置
位置
,以仅提取行,可能在整个查询中使用
.DefaultIfEmpty()
来查找是否不存在值为
3
AdminFilterFieldID
。这似乎是一个糟糕的数据库设计,不适合关系数据库(除非有令人信服的理由使用它-例如,可能有多个重复的
AdminFilterField
s)。@NetMage有多个筛选字段,现在,因为我正在构建一个要执行的查询,所以我需要检查该搜索字段的值是否存在或是否为null。Thx用于注释但除非过滤器字段是动态的,否则您可以使用一个常规SQL表,每个过滤器字段有一列。是否动态创建过滤器字段?