EF 是否支持 SQLite View 中的计算列?
我刚刚向我的 SQLite 数据库添加了一个 View 。虽然 EF 可以看到 View 并在我发出“从数据库更新模型...”命令时为其创建实体,但生成的实体没有与我的 View 的计算列相对应的任何属性(顺便说一句,这就是全部原因我为此创建了 View )。
是已知/记录的问题,还是我做错了什么?
这是我的观点:
SELECT [Id],
[ProjectId],
[Start],
[End],
[Deleted],
[LastUpdate],
(JULIANDAY ([End]) - JULIANDAY ([Start])) * 86400000 AS [Duration]
FROM [Timeslot]
它看不到
Duration
出于某种原因列。编辑
考虑到 CL 的回答,我尝试将有问题的列显式转换为
INTEGER
, 以帮助 SQLite 识别其类型:CAST (((JULIANDAY ([End]) - JULIANDAY ([Start])) * 86400000) AS [INTEGER]) AS [Duration]
证明没有什么好处。
最佳答案
这是 problem使用 EF 可以通过在连接字符串中为此类列指定默认数据类型或作为 System.Data.SQLite.dll.config
中的环境变量来解决。 :
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="DefaultFlags_SQLiteConnection" value="DetectTextAffinity, DetectStringType" />
</appSettings>
</configuration>
关于entity-framework - Entity Framework 看不到 View 的计算列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603516/