C# 不支持视图列类型-实体框架
更新:这现在是System.Data.Sqlite.org的记录单强> 在我的SQLite数据库中有类似的视图C# 不支持视图列类型-实体框架,c#,entity-framework,sqlite,view,C#,Entity Framework,Sqlite,View,更新:这现在是System.Data.Sqlite.org的记录单 在我的SQLite数据库中有类似的视图 SELECT * FROM ( SELECT * FROM ( SELECT fc.FilterCommandId, fc.ProcedureId, 1 AS IsDynamic, substr(fc.DataType, 1, 20) || fc.Sequence AS Filter, fc.ObjectName F
SELECT * FROM (
SELECT * FROM (
SELECT fc.FilterCommandId, fc.ProcedureId, 1 AS IsDynamic,
substr(fc.DataType, 1, 20) || fc.Sequence AS Filter, fc.ObjectName
FROM ((FilterCommands fc INNER JOIN DynamicFilterCommands dfc
ON fc.FilterCommandId = dfc.FilterCommandId)
INNER JOIN DynamicFilterCommandFields dfcf
ON dfc.DynamicFilterCommandId = dfcf.DynamicFilterCommandId)
INNER JOIN ProcedureFilterKeys pfk ON fc.ProcedureId = pfk.ProcedureId
GROUP BY fc.FilterCommandId, fc.ProcedureId, 1,
substr(fc.datatype, 1, 20) || fc.Sequence, fc.ObjectName
ORDER BY fc.SortOrder
) AS sq
UNION
SELECT fc.FilterCommandId, fc.ProcedureId, 0, substr(fc.datatype, 1, 20) || fc.Sequence,
NULL
FROM FilterCommands fc INNER JOIN StaticFilterCommands sfc
ON fc.FilterCommandId = sfc.FilterCommandId
)
我遇到的问题是映射EF中的所有列。我得到了一些列的错误代码6005(目标实体框架版本当前不支持数据类型“”。它似乎会影响视图中提供的文字值(1,例如IsDynamic
),以及直接从表中获取的值(fc.ObjectName
),尽管这是为UNION
查询的第二部分提供的NULL
值)
这将导致列未映射到视图。我希望这个视图是只读的,所以我不担心更新。但是我希望这些列可以用于应用程序
有没有人遇到过这个问题,或者有解决问题的想法?我也有同样的问题。在我的例子中,我观察到直接从表中获取的列是可以导入的。只有属于SQLITE表达式的列(包括使用'AS'关键字公开的文本值)才有问题。此外,即使尝试使用SQLITE中的CAST(…AS)函数强制表达式的数据类型,也会发生这种情况。有人找到了这个问题的原因/解决方案吗?这里也有同样的问题,我读到sqlite使用动态类型,实体框架不喜欢这样。但是我没有找到解决这个问题的办法。