Gib*_*boK 3 c# linq linq-to-entities entity-framework
我使用c#,linq和EF4.
我在我的概念模型中表示的DataBase中有两个表:
数据库表:
CmsContents
CmsCategories
CmsRelatedCategories (Pure Juction Table)
Run Code Online (Sandbox Code Playgroud)
实体类型:
CmsContent
CmsCategory
Run Code Online (Sandbox Code Playgroud)
Entyt套装:
CmsContents
CmsCategories
Run Code Online (Sandbox Code Playgroud)
我有一些导航属性:
for CmsContents --> CmsCategories --> Return Collection of Cms CmsCategory
for CmsCategories --> CmsContents --> Return Collection of Cms CmsContents
Run Code Online (Sandbox Code Playgroud)
数据库中的连接表数据如下:
CategoryId ContentId
7 1
7 2
9 2
Run Code Online (Sandbox Code Playgroud)
我需要查询Entity Framwork来检索包含在Junction Table中的所有CmsContents.
目前我使用此代码:
var contents = from cnt in context.CmsContents
where cnt.CmsCategories.Any()
select cnt;
Run Code Online (Sandbox Code Playgroud)
返回:
CmsContents
1
2
Run Code Online (Sandbox Code Playgroud)
我需要显示结果:
CmsContents
1
2
2
Run Code Online (Sandbox Code Playgroud)
我怀疑Any()只显示DISTINCT值,但我需要列出所有值.
知道怎么解决吗?
你能不能给我写LINQ查询,这样我就能得到清晰的图片.
Any()
根本不返回值 - 它返回一个布尔值,表示集合中是否有任何值.它只显示两个值,因为您只查询CmsContents,它有两行,并且两行至少有一个类别,因此两行都在结果中.
看起来你真的喜欢这样的事情:
var contents = from cnt in context.CmsContents
from category in cnt.CmsCategories
select cnt;
Run Code Online (Sandbox Code Playgroud)