entity-framework - Entity Framework 看不到 View 的计算列

标签 entity-framework sqlite views calculated-columns

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/

相关文章:

android - 相同高度的 View 对于顶 View 和底 View 看起来不同

android - 如何将布局从 xml 添加到 Extended FrameLayout Android?

entity-framework - Entity Framework 覆盖 DatabaseGeneratedOption.Identity

.net - 下载 .NET 3.5 的 Entity Framework

c# - 如何首先使用带有 EF 代码的可重用查询/表达式来获取子实体作为父级中的 DTO?

c++ - 如何使用 QT Sqlite 插入多行?

python - 我的插入语句执行了两次,我不知道为什么。 sqlite3

.net - EF 5 无法验证模型的兼容性

sqlite - 如何删除 SQLite 中的重复项?

oracle - 为什么在创建这个简单的实体化 View 示例时会出现 ORA-12054 错误?