使用 linq2db 的不同类型的联合

union of different types using linq2db

我有 DocumentField_1 和 DocumentField_2 的类型定义,这是完全不同的。

DocumentField_1如果赋值为真则有记录,否则没有记录,所以是boolean类型。 DocumentField_2 具有日期值。

我在 sql 中有以下查询,我想使用 linq2db 编写。

既然已经说过这些是不同的类型(布尔值和日期),那有什么办法呢?

select 'True' from DocumentField_1 where DocumentField_1.DocumentId = 2
union all
select CONVERT(varchar, value) from DocumentField_2 where DocumentField_2.DocumentId = 2

DocumentField_1 的架构是

Id          -> int
DocumentId  -> int

DocumentField_2 的架构是

Id          -> int
DocumentId  -> int
Value       -> datetime

如果我没看错你的问题,应该很简单:

subquery1.Select(_ => “True”).UnionAll(subquery2.Select(_ => _.Date.ToString());

除了ToString(),您还可以使用Sql.Convert / Sql.Convert2扩展来自定义格式