ORM是否有任何方法可以确定SQLite列是否包含日期时间或布尔值?

dev*_*xer 6 c# database sqlite orm dblinq

我一直在考虑使用SQLite我的下一个项目,但我担心,它似乎缺乏适当datetimebit数据类型.

如果我使用DbLinq(或其他一些ORM)生成C#类,属性的数据类型是否会"减弱"?将日期时间数据放在类型string或属性的属性中double吗?将布尔数据放在类型的属性中int吗?

如果是,有什么影响?我正在设想一个场景,我需要用更具体的数据类型编写第二层类,并进行一系列转换和转换,但也许它并不像我担心的那么糟糕.如果您对此或类似场景有任何经验,您是如何处理的?

dan*_*n04 1

SQLite 本身仅识别五种数据类型:NULLINTEGERREALTEXTBLOB。但它可以让你声明任何你想要的类型名称,这样你就可以写

CREATE TABLE SomeTable (
   TimeAdded DATETIME,
   SomeFlag  BOOLEAN
);
Run Code Online (Sandbox Code Playgroud)

并让您的 ORM 按照您想要的方式解释类型。

我已经围绕 SQLite 编写了一个 C++ 包装器,并采用不同的方法用变体类型表示所有数据库值。此变体提供不同类型之间的转换,因此SqlValue("2010-05-03 01:01:04").AsTimestamp()给出了预期的时间戳对象。