我有一个查询,我想在其中获取特定列中具有 NULL
的所有记录:
query {
for a in db.Dbo.DataAlert do
where (a.DateSent = null)
select a
}
但是,这会引发一个错误,指出 null 不是有效值。
编写该查询的正确方法是什么?
更新:我正在使用 this SQLProvider .
最佳答案
您可以通过指定 UseOptionTypes 为可为空的列生成选项类型静态参数。默认值为 false
,它返回例如 0 而不是 NULL。这在文档中没有很好的记录,例如 Querying 中没有提及。文档页面,并且在 Home 中只有一个示例页面。
将 UseOptionTypes 设置为 true
后:
type sql = SqlDataProvider<
ConnectionString = connectionString,
DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER,
UseOptionTypes = true
>
可空字段将返回 Option 类型,允许您编写:
query {
for a in db.Dbo.DataAlert do
where (a.DateSent = None)
select a
}
关于database - F# SQLProvider - where 子句中的 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44256163/