带有Entity Framework的SQLite DATETIME列

mar*_*llm 4 c# sqlite datetime entity-framework ef-database-first

我有一个现有的SQLite数据库,我想在Entity Framework中使用它.然而,SQLite奇怪的类型系统意味着你甚至可以

create table temp(temp datetime);
insert into temp values ('whatever');
Run Code Online (Sandbox Code Playgroud)

日期存储为Unix时间整数.我的模型类是由Visual Studio自动生成的,那么如何告诉代码生成器正确处理这些日期而不是让应用程序抛出

字符串未被识别为有效的DateTime.

启动时的异常?

mar*_*llm 5

您必须将连接字符串更改为类似的内容

data source="|DataDirectory|\data.sqlite";datetimeformat=UnixEpoch;datetimekind=Utc
Run Code Online (Sandbox Code Playgroud)

您可以更改这些设置Server Explorer/<right click your connection>/Modify Connection/Advanced,但更改其中的设置不会传播到App.config连接字符串.