【发布时间】:2021-12-08 19:54:25
【问题描述】:
在此示例中,我有一个下表,其中有一列用于“受限访问”。我有另一个包含访问信息的表。使用 linq 加入下表的最佳方法是什么?
我有一个我们称之为报告的主表
报告
| id | report | isRestricted |
|---|---|---|
| 1 | a | 0 |
| 2 | b | 1 |
| 3 | c | 1 |
我还有第二个表,我们称之为 Access
访问
| id | company | report |
|---|---|---|
| 1 | b | |
| 2 | alphabet | c |
在代码中,我想创建一个具有以下条件的列表:
- 如果 isRestricted 为 0,它将显示给任何试图访问的公司
- 如果 isRestricted 为 1,则仅当当前公司的访问表中有条目时才显示该报告
所以
var currentCompany = “google”;
我希望返回一个带有报告“a”和“b”的列表。
我将如何使用 linq 完成此任务?
【问题讨论】:
-
linq 标签建议您在 LINQ 中执行此操作。所以好的开始是找到一个支持 LINQ 的 O/R 映射器。它也有助于展示你自己的第一次努力。他们比你想象的更清楚。
-
定义“高效”。如果您的意思是高性能,那么您需要考虑索引。您可能需要索引
REPORT (report) INCLUDE (id, isRestricted)和ACCESS (company, report)