Bre*_*ias 3 sql-server-ce dapper
您可以使用SQL CE执行多个语句,这一直是事实.事实上,我正在使用SQL Server Compact Toolbox来做到这一点.但是,当我采用相同的多语句命令并从Dapper执行它们时......
public const string SampleDml = @"
INSERT INTO [Plugin](Name, TypeName) VALUES ('Blog','Shroom.Blog');
GO
INSERT INTO [ContentDef](PluginID, Name, Placement, IsStatic) VALUES(@@IDENTITY,'MyBlog','Layout:Left',1);
GO
";
Run Code Online (Sandbox Code Playgroud)
然后我不断收到此错误:
解析查询时出错.[令牌行号= 3,令牌行偏移= 1,令牌错误= GO]
我正在使用的SQL CE库的版本是版本4.0.0.0(运行时版本v2.0.50727).我正在使用Dapper 1.12.0.0(运行时版本v4.0.30319)和Dapper Extensions 1.3.2.0(运行时版本v4.0.30319).
SQL CE库看起来像是错误的运行时,但是Web平台安装程序说我有最新的(所以这真的是最新的?).思考?
实际上,您只能使用SQL Server Compact执行每个批处理的单个语句,我所做的(我是SQL Server Compact Toolbox作者)是按GO和换行符分割字符串.
我有这样的代码:
using (StringReader reader = new StringReader(script))
{
string line;
while ((line = reader.ReadLine()) != null)
{
line = line.Trim();
if (line.Equals("GO", StringComparison.OrdinalIgnoreCase))
{
RunCommand(sb.ToString(), dataset);
sb.Remove(0, sb.Length);
}
else
{
sb.Append(line);
sb.Append(Environment.NewLine);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |