问题标签 [linq2db]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - Linq2Db / Access - 多个字段的匿名组错误
我有 2 个表:(pob
带有一些活动的结果)和names
(带有用户数据)。我尝试pob
根据他们的最后活动日期从表中选择前 5 名用户。所以我inner join names
and pob
,然后根据计算选择前5个用户max(date)
。
此查询有效:
现在我需要将其转换为 Linq 查询。这是我的尝试,但它不起作用。
"Key" is not a member of type "System.Collections.Generic.IEnumerable'1[VB$AnonymousType_2'2[pob,users]]".
.LastDateOfUse = pg.Max(Function(f) f.p.Date)
如果我像下面这样删除它就可以了。通过“工作”,我的意思是没有例外,但查询结果当然是错误的,但是分组是正确的。
编辑
我也尝试过像下面这样的导航属性,但我再次收到同样的错误。
如果我.LastDateOfUse = pg.Max(Function(f) f.p.Date)
像下面这样删除它,它再次开始工作(正确的分组,错误的整体结果)。
如何将上面的 Sql 查询转换为 Linq?(VB.Net 中的首选答案,但 C# 也可以)
c# - Linq2db.Postgresql SELECT Throws 22021: invalid byte sequence for encoding \"UTF8\": 0xa3
我正在使用 linq2db.postgresql 从表中选择数据,该表在描述字段中包含一些 unicode。
这会引发异常:22021:用于编码“UTF8”的无效字节序列:0xa3
不幸的是,数据不是我的,它就是这样,我需要将它选择到一个 sql 数据库中。
任何想法如何解决这个问题?或者,如果我可以配置 linq2db 来使用它,那将是非常棒的,并且欢迎您。
c# - 通过 Linq2Db 使用多个连接自动执行查询映射
我使用 BLToolkit 已经有一段时间了,最近我一直在按照作者的建议测试 Linq2Db。
我已经能够重新创建为 BLToolkit 所做的大部分自动化操作,但我正在努力创建一个标准结构来查询具有多个表连接和列子集的数据。实际上,我们当前使用的方法是相当手动的,我正在尝试使用更自动化的方法,使我们能够使用 LINQ 来为我们的客户端上的 linq2db 框架提供的服务。
让我们从一个简化的例子开始。
有了这些表,我成功地生成了 POCO 类并单独进行了查询并填充了与 Linq2Db 的关联。现在我假装是查询这样的事情:
鉴于我已经设置了这样的课程:
我没有问题像这样查询它:
现在我想要实现什么以及到目前为止我已经尝试过什么:
第一步:自动查询
我想以某种方式将查询“嵌入”到类的元数据中,例如:
选项1
选项 2
到目前为止一切都很好......或者不是这样,因为第一个选项迫使开发人员知道在哪里调用 db.Query() 以及何时调用 db.QueryJoinObject() 和第二个强制创建一个额外的虚拟接口并创建每次一个新实例(尽管可以实现缓存)
第二步:在这些对象上使用 Linq to SQL
这就是科幻小说对我来说开始的地方,因为我不知道如何处理这个问题。
显然,如果我执行:
linq2sql 执行完整的选择查询,然后将 Where 应用于已映射的对象。这是我无法承受的真正的性能痛苦。
所以,我正在寻找一种以某种方式修饰类 linq2db 可以生成与 linq 语句相对应的 SQL 的方法。
你对我在第一步暴露的内容有什么看法?关于第二步选择什么方向的任何建议?
提前致谢。
c# - Linq2db.MySQL C# 中 DateTime 的 GroupBy 日期部分
我正在尝试按 Linq2db.MySQL 中 DateTime 的日期部分进行分组。
我的第一次尝试是:
但 DateTime.Date 无法识别。我尝试安装 MySQL.Data.Entity 和 Entity Framework 并将 GroupBy 更改为
但后来我得到了错误:
'TruncateTime (convert(selectParm.Change_date))' 无法转换为 SQL
这在 Linq2db 中甚至可能吗?
编辑:
另一个问题中提出的解决方案是在我现在已经完成的数据库中创建一个函数(fTruncateTime),返回 Date(DateTime),但我不知道如何在我的 GroupBy 子句中使用它。
c# - 带有 Linq2DB 的只读列
在我的 SQL Server 表中,我有一个计算列。因此,对于该专栏,我希望在 Linq2DB 生成的代码中只有读取语句(如“select”)而没有写入语句(如“update”)。
最简单的方法是什么?
我不想明确地更新/添加语句来阻止写入此列。
sql-server - 将本地实体合并到跳过主键的表中(linq2db)
我想使用 linq2db 将本地实体列表合并到一个表中(如果它们不存在)。
我尝试执行以下操作:
这给了我这个例外:
发生这种情况是因为生成了以下 SQL。
(notice0
传递给Id
然后插入INSERT
到表中。)
这是我Order
由 linq2db 生成的模型:
我希望Id
s 在MERGE
SQL 中被跳过,以便它们可以作为正常的增量标识值生成。
我最终指定了要手动插入的字段(我不喜欢,因为它复制了我们的 AutoMapper 映射):
如何使第一个代码片段按预期工作?
c# - 使用 linq2db 执行原始 SQL 字符串
使用 linq2db ( https://github.com/linq2db/linq2db ) 我可以执行原始 SQL 字符串并将结果作为dynamic
?
我正在寻找类似 ADO.NETDBCommand.ExecuteReader
或 Dapper 的Query<dynamic>
.
vb.net - 通过 Linq2db 排除 Linq 左外连接
使用Linq2db
并且Ms Access
我想选择所有没有目标的扇区,因此我想执行带有排除的左外连接:
Linq2db
将此解决为:
这显然是错误的。
我也试过:
接收:
总结一下,我需要:
如何在条件下写入Where t1.id_sector Is Nothing
(id_sector 是FK
这样,Integer
所以它不可能是Nothing
.
c# - 带有身份的 Linq2db 插入未按预期工作
为了继续使用数据库中的数据在应用程序中工作,我使用的是 linq2db。
如果对象有 ID,则在 DB 中插入对象应插入 WITH ID,如果没有身份,则在 DB 中为该对象创建新 ID。
但就目前而言,这种方法在两种情况下都插入了新的 id。
我可以给你举个例子:
插入后,我们在 DB 中有这个名为“Greg”且 ID=1 的客户...
***有没有办法做类似的事情,但插入之前设置的相同 ID(在我们的示例中 = 20)?
PS:如果我使用 NpgsqlCommand 并插入相同的数据,则插入 ID=20...
c# - Linq 选择所有和附加计算字段
我想生成一个类似于 sql select 的 select 语句:
在 linq 我会这样做
有没有办法在不列出每个属性的情况下在 sql select 中做到这一点?
更新 :
因为我在这里使用 linqToDB 原始类: