8

我正在尝试在 VS 2012 (.NET 4.5) 下创建 C# 应用程序,并使用由 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. 表格在向导对话框中可见,因此我正在检查它并单击“完成”按钮。

现在应该生成代码,但我有以下消息:

  • 目标 .NET Framework 版本当前不支持数据类型“longchar”;表 'main.MyTable' 中的列 'Name1' 被排除在外

  • 目标 .NET Framework 版本当前不支持数据类型“二进制”;表 'main.MyTable' 中的列 'Blob1' 被排除在外。

  • 目标 .NET Framework 版本当前不支持数据类型“日期”;表 'main.MyTable' 中的列 'Date1' 被排除在外。

  • 目标 .NET Framework 版本当前不支持数据类型“日期”;表 'main.MyTable' 中的列 'Date2' 被排除在外。

我对此感到非常惊讶,因为我已经在使用 EF + Sqlite 但与其他提供程序(旧版 1.0.66.0)一起使用,并且类型映射没有问题。

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

此致。

4

1 回答 1

0

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

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

(顺便说一句,我刚刚查看了他们的网站 - 1.0.90.0 已经发布,您可能也想尝试一下)

旁注:如果MyTable定义不仅仅是一个示例,我建议使用nvarchar而不是varchartext

于 2014-01-21T17:46:20.363 回答