从Entity Framework Model为SQLite数据库生成SQL

cod*_*nix 11 .net sql-server sqlite orm entity-framework

是否可以使用实体框架从模型生成SQLite数据库?我创建了一个SQLite连接并创建了一个模型,但是当我单击"从模型生成数据库"时,我得到以下内容,它看起来像MS SQL,如果使用SQLite执行会产生错误(只是文件的开头):

-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 11/25/2010 00:26:41
-- Generated from EDMX file: G:\Foo\Bar\Model1.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [foobar.sqlite];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
...
Run Code Online (Sandbox Code Playgroud)

我的连接字符串如下所示,所以我肯定选择了正确的数据库类型:

'metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SQLite;provider connection string="data source=G:\foo\bar\baz"'
Run Code Online (Sandbox Code Playgroud)

不应该这样工作吗?

编辑:

由于似乎没有人知道答案我会更容易:是否可以为除MICROSOFT SQL SERVER之外的任何数据库生成带有EF的SQL代码?

tox*_*erd 11

当我偶然发现这个链接时,我正在寻找解决方案:http://code.msdn.microsoft.com/Demo-of-ADONET-POCO-with-140ad3ad

将SSDLToSQLite3.tt文件放在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen中,您应该可以选择此作为实体中的DDL生成模板设计师.

一旦你这样做,该模型将创建适合SQLite的SQL.

  • `SSDLToSQLite3.tt`似乎做了很多工作.谢谢.并且没有必要进行文章中描述的任何配置文件修改,因为我安装了完整的System.Data.SQLite发行版的最新版本.唯一不明显的是找到如何应用它 - 我没有新的它是在模型属性中选择(右键单击设计器可用空间并在那里选择属性). (2认同)