【发布时间】:2020-09-20 17:45:41
【问题描述】:
我在将我的 sql 数据库中的值与我的代码中的对象列表进行比较时遇到问题。
该对象在数据库中不存在
列表中的对象示例:
{
public long CompareId
public bool HasAccess
}
我在 C# 中使用 SQLBuilder 然后我想做一个这样的查询:
在编造的代码中
SELECT * FROM EntityPermission
WHERE EntityPermission.HasAccess = listOfObjects.Where(obj => obj.CompareId == EntityPermission.CompareId).HasAccess
在更多组成的代码中,但使用 sql builder
query.WHERE("(EntityPermission.HasAccess = {0})", listOfObjects.Where(obj => obj.CompareId == EntityPermission.CompareId).HasAccess)
我完全清楚我在这里混合了 c# 和 sql,但这是我可以解释我想要完成的最佳方式。
言辞
我想找到 HasAccess 列等于具有相同 Id 的对象的 HasAccess 属性的 EntityPermission。
非常感谢大家的帮助!
【问题讨论】:
-
什么是listOfObjects?它是您数据库中的另一个实体吗?你可以做一个连接并获得你需要的数据。
-
它不是我数据库中的另一个实体,它来自输入。所以它只是存在于代码中的那个时刻的价值
-
您在此处尝试执行的操作本质上需要对表变量或表值参数进行内部连接;尴尬的一点本质上是:把你的
listOfObjects放到数据库中——listOfObjects是多少位?取决于这是否可能是 20 vs 2000 vs 200000 有很多差异 -
对象列表可能有大约 500 个实体,可能更多
标签: c# sql linq .net-core sqlbuilder