C# SqLite+;的类型映射不受支持;实体框架5/6

C# SqLite+;的类型映射不受支持;实体框架5/6,c#,entity-framework,sqlite,C#,Entity Framework,Sqlite,我正在尝试在VS 2012(.NET 4.5)下创建C#应用程序,使用EntityFramework 6.0管理的SqLite(也试用了5.0) 我的步骤如下: CREATE TABLE MyTable ( Id INT PRIMARY KEY, Name1 TEXT, Name2 VARCHAR, Blob1 BLOB, Date1 DATE, Date2 DATETIME ); 从安装sqlite-netFx45-setup-bundle-x86-2012-1.0.85.

我正在尝试在VS 2012(.NET 4.5)下创建C#应用程序,使用EntityFramework 6.0管理的SqLite(也试用了5.0)

我的步骤如下:

CREATE TABLE MyTable (
Id    INT      PRIMARY KEY,
Name1 TEXT,
Name2 VARCHAR,
Blob1 BLOB,
Date1 DATE,
Date2 DATETIME 
);
  • 从安装sqlite-netFx45-setup-bundle-x86-2012-1.0.85.0.exe

    它为VS2012安装组件

  • 创建C#项目

  • 使用NuGet:安装包EntityFramework-Pre(它安装EF 6.0)

  • 使用一个表创建简单的Sqlite DB,DDL如下所示:

    CREATE TABLE MyTable (
    Id    INT      PRIMARY KEY,
    Name1 TEXT,
    Name2 VARCHAR,
    Blob1 BLOB,
    Date1 DATE,
    Date2 DATETIME 
    );
    
  • 将新项添加到项目:ADO.NET实体数据模型:

  • 已选择上述数据库文件,连接字符串保存在配置文件中

  • 表在向导对话框中可见,所以我正在检查它并单击“完成”按钮

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

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

    • 目标.NET Framework版本当前不支持数据类型“binary”;已排除表“main.MyTable”中的“Blob1”列

    • 目标.NET Framework版本当前不支持数据类型“date”;已排除表“main.MyTable”中的列“Date1”

    • 目标.NET Framework版本当前不支持数据类型“date”;已排除表“main.MyTable”中的列“Date2”

    我对此感到非常惊讶,因为我已经使用了EF+Sqlite,但是使用了其他提供程序(legacy 1.0.66.0),并且在类型映射方面没有问题

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


    致以最诚挚的问候。

    SqLite版本1.0.85.0似乎有问题 但是,版本1.0.84.0可以工作

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

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


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

    有一个类似的问题和答案。你可能会发现它很有用。我找到了这个链接,也许它会帮助你。我为甲骨文也经历了同样的痛苦。我所做的是采用代码优先的方法,手动创建配置,并对不受支持的类型使用替代类型