在表的SQLite中,我有列:此列的标题和类型是字符串。 现在,我想将此表映射到C#中的实体框架。问题在于该列的类型字符串,因为我无法将其映射到C#中的字符串类型。 当我将SQLite字符串更改为VARCHAR时,它可以工作。但是如何在不更改列类型的情况下解决此问题?
答案 0 :(得分:0)
大多数SQL数据库引擎(除 据我们所知,SQLite使用静态的,刚性的类型。带静电 类型,值的数据类型由其容器确定- 存储值的特定列。
SQLite使用更通用的动态类型系统。在SQLite中, 值的数据类型与值本身而不是与其值相关联 容器。 SQLite的动态类型系统向后兼容 与其他数据库引擎中更常见的静态类型系统 在静态类型的数据库上工作的SQL语句的意义 在SQLite中应该以相同的方式工作。但是,动态输入 SQLite允许它做传统上不可能的事情 严格类型的数据库。 SqlLite Datatypes Reference
根据文档,System.String
映射到SQLite中的TEXT
,因此您不能对SQLite使用字符串数据类型。
TEXT :该值为文本字符串,使用数据库编码(UTF-8,UTF-16BE或UTF-16LE)存储。
这是一张显示.Net SQLite默认类型映射的表。
有关更多信息,请参见
Entity Framework Data Types Mapping with .Net