- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 SQL 查询转换为 Linq,但出现异常:
System.NotSupportedException:不支持使用本地集合的查询。
那么有没有办法以“合法”的方式重新表述查询?
感谢您的任何建议,
安德斯,丹麦
底部是我执行失败的代码。
我试图解决的逻辑问题是找到用户有权访问的“结构”,无论是通过直接访问还是通过具有访问权限的组的成员身份。我们没有嵌套组。
换句话说,如果满足以下任一条件,则用户应该具有访问权限:
- The user created the structure (id is 'stamped into' the structure record).
- An entry exists in the PermissionUsers table, linking the Permissions Table with the users table.
- an entry exists in the PermissionGroups table, linking the Permissions table with the Groups table and the user is referenced in the UsersGroups table, linking Users table with the Users table.
将权限/限制结果应用于可访问的项目是一个相对较新的事物,我们希望数据库能够完成繁重的工作;)。
[TestFixture]
public class LinqTest : CommandBasedIntegrationTestBase
{
[Test, Category("SuperIntegration"), RequiresSTAAttribute]
public void TestThat()
{
DbIntegrationTestHelper.SetState();
var dataContextProvider = ObjectFactory.GetInstance<IDataContextProvider>();
const int userId = 1;
var environment = ObjectFactory.GetInstance<IState>().DatabaseEnvironment;
var dataClasses1DataContext = dataContextProvider.GetContext(environment);
var idsByCreator = from r in dataClasses1DataContext.Structures where r.CreatedUserId == userId select r.StructureId;
var idsByUserAccess = from r in dataClasses1DataContext.PermissionUsers where r.UserId == userId select r.StructureId;
var idsOfGroupsContainingUser = from r in dataClasses1DataContext.UsersGroups where r.UserId == userId select r.GroupId;
var idsByGroupAccess = from r in dataClasses1DataContext.PermissionGroups where idsOfGroupsContainingUser.Contains( r.GroupId ) select r.StructureId;
var res = from s in dataClasses1DataContext.Structures
where
idsByCreator.Contains(s.StructureId) ||
idsByUserAccess.Contains(s.StructureId) ||
idsByGroupAccess.Contains(s.StructureId)
select s;
foreach (var structure in res)
{
Debug.WriteLine(structure.Name);
}
}
}
最佳答案
尝试JOIN
、UNION
示例
var ctx = dataContextProvider.GetContext(environment);
var byCreator = from r in ctx.Structures where r.CreatedUserId == userId select r;
var byUserAccess = from r in ctx.PermissionUsers
join s in ctx.Structures on r.StructureId equals s.StructureId
where r.UserId == userId select s;
var byGroups = from ug in ctx.UsersGroups
join pg in ctx.PermissionGroups on ug.GroupId equals pg.GroupId
join s in ctx.Structures on pg.StructureId equals s.StructureId
where ug.UserId == userId select s;
var res = byCreator.Union(byUserAccess).Union(byGroups);
更新
根据@Magnus 的评论,我已经删除了对 Distinct()
的不必要的调用。仅当使用 Concat()
而不是 Union()
时,才需要调用 Distinct()
。
关于.net - Linq - 'Queries with local collections are not supported' 时该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14157404/
int i = 1; int main() { int i = 2; { int i = 3; cout 值为 3)。您能做的最好的事情就是在它仍在范
我可以手动为某些应用程序设置 $locale 吗? 支持本地化的唯一方法是否可能是包含当前语言环境的 Angular 库中的本地化文件。如果存在多种文化怎么办?在这种情况下我必须动态加载本地化文件?我
我有两台机器。一个使用 CUPS 1.5.0,另一个使用 CUPS 1.6.1。两台机器位于同一本地网络上。我想要完全发现网络上的打印机。如果我运行以下命令: CUPS_DEBUG_LEVEL=2 /
所以我基本上是这样做的。 OObjectDatabaseTx result = OObjectDatabasePool.global().acquire( "local:orientdb", "adm
控制台日志重新显示此错误 tsega/meteor-bootstrap3-datetimepicker TypeError: locale() locale it is not loaded from
我在使用 express 4 时很困惑。我使用 express-generator 来生成我的项目。根目录下有app.js,路由器文件有index.js。但是网上关于express的教程都是直接在
问题:直接使用 SimpleDateFormat,无需明确的语言环境Id:SimpleDateFormat SimpleDateFormat format = new SimpleDateFormat
这里的代码在 Python 中,但在使用语言环境的 C/C++ 中的行为应该是相同的。 >>> import locale >>> locale.setlocale(locale.LC_ALL, "f
根据 app-localize-behavior 的 polymer 文档 Each element that displays content to be localized should add
起初我从 this tutorial 实现 l10n到 Flutter 的模板项目文件,这是成功的。之后,我尝试将 MyHomePage 类移动到名为 home.dart 的新文件中。它停止工作是因为
我正在使用源代码中的Postgres 13(Rel_13_STRATE分支),并且我使用的是来自apachea/age源代码的(Release/PG13/1.3.0分支)中的1.3.0版的Apache
我有: 基于节点Express的Web服务器,应仅在用户的本地计算机上运行 一个 Angular 客户端应用程序,它将GET Http请求发送到该本地Web服务器以获取JSON中的数据并将其显示在浏览
问了一些类似的问题,但我的问题是,如果我想传播不同路由中间件的中间结果,最好的方法是什么? app.use(f1); app.use(f2); app.use(f3); function f1(req
我注意到我的本地变量中有从服务器收到的本地变量的副本。例如 Object { settings: "4.2", env: "development", utils: true,
我的网卡不稳定,尤其是从休眠状态恢复后,有时会掉线。退出对应于Vista的网络状态,在通知区域中显示为“仅限本地”。是否可以通过编程方式检索这些状态值(例如“有限连接”,“仅本地”,“本地和Inter
你好想知道在模板中是否有一种简单的方法来访问当前翻译的 lang 字符串。 最佳答案 您可以使用 I18n.locale 访问它. 所以在 ERB 中...... ...在 HAML 中: = I1
我在 Django 中工作。在 Django 中,当您渲染模板时,您向其发送一个上下文字典以进行替换。因为我很懒/干,所以我经常使用 locals() 作为快捷方式,而不是发送看起来像 {'my_va
我一直在尝试让 Java 根据语言环境转换数字。偶遇this post这在很大程度上帮助了我预先理解这一点,我设计了自己的方法将数字转换为特定的语言环境(根据关于这个主题的其他混淆讨论) 所以假设我有
当我运行“hadoop job -status xxx”时,输出以下一些列表。 Rack-local map tasks=124 Data-local map tasks=6 Rack-local m
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3个月前关闭。 Improve
我是一名优秀的程序员,十分优秀!