使用 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
扩展来自定义格式
我有 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
扩展来自定义格式