SqLite + EntityFramework 5/6的不支持的类型映射

时间:2013-05-01 17:56:54

标签: c# entity-framework sqlite

我试图在VS 2012(.NET 4.5)下创建C#app,使用由EntityFramework 6.0管理的SqLite(也尝试了5.0)。

我的步骤如下:

  1. http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki安装sqlite-netFx45-setup-bundle-x86-2012-1.0.85.0.exe

    安装VS2012的组件

  2. 创建C#项目

  3. 使用NuGet:Install-Package EntityFramework -Pre(它安装EF 6.0)
  4. 使用一个表创建简单的Sqlite DB,DDL遵循以下:

    CREATE TABLE MyTable (
    Id    INT      PRIMARY KEY,
    Name1 TEXT,
    Name2 VARCHAR,
    Blob1 BLOB,
    Date1 DATE,
    Date2 DATETIME 
    );
    
  5. 向项目添加新项目:ADO.NET实体数据模型:
  6. 已选择上述数据库文件,连接字符串保存在配置文件
  7. 表格在向导对话框中可见,因此我要检查它并单击“完成”按钮。
  8. 现在应该生成代码,但不是我生成了以下消息:

    • 数据类型' longchar'目前不支持该目标 .NET Framework版本;列'名称1'在表格中,主要是.MyTable' 被排除在外

    • 数据类型'二进制'目标.NET Framework版本目前不支持;列< Blob1'在表格中,主要是.MyTable'被排除在外。

    • 数据类型'日期'目标.NET Framework版本目前不支持;列'日期1'在表格中,主要是.MyTable'被排除在外。

    • 数据类型'日期'目标.NET Framework版本目前不支持;列'日期2'在表格中,主要是.MyTable'被排除在外。

    我对此感到非常惊讶,因为我已经使用EF + Sqlite,但使用其他提供程序(传统1.0.66.0),我对类型映射没有任何问题。

    您在提到的Sqlite版本中遇到过类似的问题吗? 你知道一些解决这些问题的方法吗?

    最好的问候。

1 个答案:

答案 0 :(得分:0)

SqLite版本1.0.85.0似乎存在问题 但是,版本1.0.84.0有效。

如果可能,请在步骤1中使用版本84.

(顺便说一句,我刚检查了他们的网站 - 1.0.90.0已经出来了,你可能也想尝试一下)

附注:如果 MyTable 定义不只是一个示例,我建议使用 nvarchar 而不是 varchar text < /强>