【发布时间】:2019-09-01 03:41:17
【问题描述】:
使用 Entity Framework Core(代码优先)和 SQLite,Guid 存储为二进制,但 Decimal 和 Date 字段存储为 Microsoft 提供程序的文本。
我可以理解他们可能不希望 DOUBLE 的货币金额不精确,因此使用文本。
如果我需要排序怎么办? Entity Framework Core 是否足够聪明,可以按预期进行排序(但速度较慢,因为它需要解析所有内容!),还是会按字母排序而不是按数字排序?我不希望它在 2 点之前返回 100。
我必须做一些事情,比如“给我最新的订单”,那么最好的方法是什么?我想确保它能够正常工作。
切换到 System.Data.SQLite 提供程序以 UNIX 格式存储日期是否更好(Microsoft 的提供程序不支持此功能)?然后我必须自己来回解析还是它可以自动处理它?
【问题讨论】:
-
实际上它存储为“2019-04-10 15:35:17.8548953Z”所以我猜排序应该适用于字符串。但是对于存储为“1”和“200”的十进制,我们不能说相同
-
查看 EF Core 文档的 SQLite query limitations。
标签: sqlite asp.net-core .net-core entity-framework-core system.data.sqlite