繁体   English   中英

如何使用 LINQ 到 SQL 对分层数据进行查询?

[英]How do I do queries against hierarchical data using LINQ to SQL?

我有 2 个相关的表。 每个应用程序都可以与许多应用程序相关联。 即office可以关联word,excel.......

应用程序
id PK 整数
应用程序名 varchar(50)
......

应用相关
relatedid int fk 到 app.id
appid int

示例数据应用程序 ID、应用程序名称
1、办公室
2、字
3、excel
4、地震

应用相关的相关id、appid
1, 2
1、3

基本上,我是 linq-to-sql 的新手,我有脑锁。

我想做以下查询。 我使用 vb.net 但 c# 没问题。 查询是返回所有与(1)无关的app,所以结果应该是(4,quake)。

提前致谢。

如果我理解正确,以下代码应该可以完成您的要求。

var relatedToApp1 = Context.appsrelated.Where(related => related.relatedid == 1);
var items = Context.app.Where(app => app.id != 1 && !relatedToApp1.Any(related => related.appid == app.id));

C# - 查找相关应用程序的 id,select ids,select 仅那些与相关应用程序无关的应用程序或其 id 不相关的应用程序。

var query = apps.Where( a => a.appid != 1
                             &&  !appsrelated.Where( r => r.relatedid == 1 )
                                             .Select( r => r.appid )
                                             .Contains( a.appid ) );

对于那些在vb土地上的人。 这是结果查询。

Dim dc As New dashboardDataContext  
Dim q = dc.appsrelateds _  
.Where(Function(r) r.relatedid = 17)

Dim items = dc.ApplicationInfos _  
    Where(Function(app) app.Id <> 17 And Not q.Any(Function(related) related.appid = app.Id))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM