【发布时间】:2014-08-26 20:11:13
【问题描述】:
我有一个由实体框架生成的 sql 脚本,它创建了一个非常简单的表。
create table [Destinations] (
[Id] [int] not null identity,
[Country] [nvarchar](max) null,
[State] [nvarchar](max) null,
[City] [nvarchar](max) null,
primary key ([Id])
);
我正在尝试在 Sqlite 数据库上运行它,但似乎语法不同。 我试图编写一个替换方法来用他们的 sqlite 版本替换关键字,这不是完全有效的。 我想知道是否有更好的方法来进行这些更改,或者是否有一个库可以在 C# 中执行此操作?
这是转换后的脚本:
create table [Destinations] (
[Id] INTEGER not null AUTOINCREMENT ,
[Country] [nvarchar](max) null,
[State] [nvarchar](max) null,
[City] [nvarchar](max) null,
primary key ([Id])
);
【问题讨论】:
-
确切的错误是什么?你的新脚本是什么样的?对于初学者来说,sqllite 中似乎没有 nvarchar 数据类型,这意味着您的实体框架数据类型可能会有所不同,这会导致问题。
-
这是我的问题,当前脚本是:create table [Destinations] ( [Id] INTEGER not null AUTOINCREMENT , [Country] [nvarchar](max) null, [State] [nvarchar](max ) null, [City] [nvarchar](max) null, 主键 ([Id]) );我试图找到一种工具来自动化这种转换。
-
我将您的脚本添加到原始问题中。我不知道是否有库可以提供帮助,但 sqllite 中似乎没有 nvarchar 数据类型,我怀疑您是否能够将数据层指向它。为什么需要转换为 SQLLite?
-
你如何告诉 EF 使用 SQLite 数据提供程序?
-
primary key已经是AUTOINCREMENT和not null,它们是不必要的,删除它们然后它就可以工作了。
标签: c# sql database sqlite converter