gpt4 book ai didi

c# - 数据上下文。有没有一种方法可以在其中添加额外的 WHERE?

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:50 24 4
gpt4 key购买 nike

所以基本上我有一个应用程序只能与一个用户一起使用,但我想让它成为多用户。这将涉及我登录用户,并在 session 中保留用户 ID,以及将用户 ID 列添加到我的数据库表中。没什么大不了的。

我想更改我的 dbml,或者使用它的部分,以便我通过它抛出的任何查询也能得到

.WHERE(user=>user.id=MYPARAM)

添加到它,只返回登录用户的记录。

有速赢吗?我可以在 .dbml 中指定它的一个地方?

最佳答案

我可能会动态创建一个 lambda 表达式。

Where 子句采用表达式类型的对象>

然后您可以使用以下内容创建表达式。

Expression<Func<User,bool>> func = null;

然后

ParameterExpression xParam = Expression.Parameter(typeof(User), "u");

然后您将使用二进制表达式为 u.i​​d = "test"创建一个表达式。

BinaryExpression uidTest = Expression.Equal(Expression.Property(xParam, "id"),
Expression.Constant("test");

然后将其附加到表达式,如下所示:

func = Expression.Lambda<Func<User, bool>>(uidTest, xParam)

实际上这是在构建一个 lambda 表达式 u=> u.id = "test"

然后可以在 .Where 中使用 func 对象,如下所示:.Where(函数)

显然,您可以随时在应用程序中根据需要的任何条件动态构建它。

关于c# - 数据上下文。有没有一种方法可以在其中添加额外的 WHERE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/710195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com