SQLite DATETIME(在 Julian/Real/Double 中)列 Entity Framework
SQLite DATETIME (in Julian/Real/Double) column with Entity Framework
我有一个现有的 SQLite 数据库,我正在使用 Entity Framework Codefirst 调用它。日期以双精度(Julian 或有时称为真实日期)的形式(通过非 c# 代码)输入到 SQLite 中。当我尝试使用 EF 检索它时无法阅读。我试图将 ConnectionString(位于 app.config)更改为 datetimeformat= Ticks、CurrentCulture 等,但无济于事。有人知道从 double 读取日期时间格式的不同日期时间格式吗?如果不存在解决方案,我将在 SQLite 中存储日期时间(Ticks)。如果有任何帮助,我们将不胜感激,并将避免此解决方法。
以下是我想出的解决方案:
我使用 non-c# 代码作为 COM DLL(从 .NET 调用)并以双精度(OLE 自动化日期)在 COM 对象上编写 SQLite DateTime 字段。一切都很好,直到我尝试通过 Entity Framework 从 .NET 读取 DateTime 字段。我尝试更改 ConnectionString(在 app.config)无济于事。 EF 似乎没有通过从 OA 日期转换来读取日期时间字段的选项。 work-arounds 是:
1- 使用 UnixEpoch,但它限制你 < 1970。
2- 使用蜱虫
3- 使用 "plain old" 字符串。
我选择了 String,这意味着我将 DateTime 转换为 String 并将其传递给 COM。 EF 可以读取标记为 DateTime 的 SQLite 字段中的 String 数据,而无需在 ConnectionString 处识别日期时间格式。
这对我来说是最简单的解决方案,但我也可以使用 Ticks(首先在 C# 中将 DT 转换为 Ticks(长),然后再传递给 COM,然后在 ConnectionString 中使用 datetimeformat=Ticks)。我没有写字符串的开销,可能是因为我的日期集不是那么大。
我有一个现有的 SQLite 数据库,我正在使用 Entity Framework Codefirst 调用它。日期以双精度(Julian 或有时称为真实日期)的形式(通过非 c# 代码)输入到 SQLite 中。当我尝试使用 EF 检索它时无法阅读。我试图将 ConnectionString(位于 app.config)更改为 datetimeformat= Ticks、CurrentCulture 等,但无济于事。有人知道从 double 读取日期时间格式的不同日期时间格式吗?如果不存在解决方案,我将在 SQLite 中存储日期时间(Ticks)。如果有任何帮助,我们将不胜感激,并将避免此解决方法。
以下是我想出的解决方案: 我使用 non-c# 代码作为 COM DLL(从 .NET 调用)并以双精度(OLE 自动化日期)在 COM 对象上编写 SQLite DateTime 字段。一切都很好,直到我尝试通过 Entity Framework 从 .NET 读取 DateTime 字段。我尝试更改 ConnectionString(在 app.config)无济于事。 EF 似乎没有通过从 OA 日期转换来读取日期时间字段的选项。 work-arounds 是: 1- 使用 UnixEpoch,但它限制你 < 1970。 2- 使用蜱虫 3- 使用 "plain old" 字符串。 我选择了 String,这意味着我将 DateTime 转换为 String 并将其传递给 COM。 EF 可以读取标记为 DateTime 的 SQLite 字段中的 String 数据,而无需在 ConnectionString 处识别日期时间格式。 这对我来说是最简单的解决方案,但我也可以使用 Ticks(首先在 C# 中将 DT 转换为 Ticks(长),然后再传递给 COM,然后在 ConnectionString 中使用 datetimeformat=Ticks)。我没有写字符串的开销,可能是因为我的日期集不是那么大。