我正在尝试使用F#控制台应用程序来查询在Docker中运行的MS SQL SERVER。我正在使用SQLProvider对数据库运行select语句,一开始只提取一个int ID。它在Windows中运行良好,但在Docker容器中不行。它失败并显示错误消息:
<ul>
<li><a href="#" name="link1">link1</a></li>
<li><a href="#" name="link2">link2</a></li>
<li><a href="#" name="link3">link3</a></li>
</ul>
参数名称:SqlDbType
我已尝试过mono:4.2.3.4和fhrp / fsharp Docker镜像。我也和我一起拉FSharp.Core库。
任何帮助将不胜感激。感谢
编辑: Docker容器在Linux上运行,单声道版本为4.22.2。
这是我的疑问:
System.ArgumentOutOfRangeException: No mapping exists from SqlDbType Date to a known DbType.
stacktrace:
type private connection = SqlDataProvider<ConnectionString="CONNECTIONSTRING",
DatabaseVendor=Common.DatabaseProviderTypes.MSSQLSERVER,
UseOptionTypes=true>
let private ctx = connection.GetDataContext()
let private application = "E-Mail an PH - eFeedback"
let history =
query {
for eh in ctx.Dbo.ActionHistoryEmail do
join gah in ctx.Dbo.GenericActionHistory on (eh.Id = gah.Id)
where (eh.Application = application)
select gah.Id
}
|> Seq.toList
答案 0 :(得分:3)
.NET还没有Date类型。在标准.NET Date
中映射到DateTime。 Mono的SqlParameter在三个地方执行此映射。其中两个将Date
和DateTime
映射到相同的类型。 third虽然没有映射date
。我怀疑调用堆栈显示在SetSqlDbType
内抛出异常。
请在问题
似乎有类似的Mono bug关于DateTime2于2014年提交。这已得到修复,但Date
仍然缺失