【发布时间】:2011-01-06 07:05:56
【问题描述】:
我想将我们的一个数据库从 SQL Server Express 迁移到 SQL Server Compact 3.5。 我正在使用 iBatis.Net,但不知道 providers.config 必须是什么样子才能访问 SQL CE 3.5。
谁能帮我解决这个问题?
谢谢 约翰
【问题讨论】:
我想将我们的一个数据库从 SQL Server Express 迁移到 SQL Server Compact 3.5。 我正在使用 iBatis.Net,但不知道 providers.config 必须是什么样子才能访问 SQL CE 3.5。
谁能帮我解决这个问题?
谢谢 约翰
【问题讨论】:
对于它的价值,这就是我对 SQL CE 4.0 的看法(大部分来自上一个答案,只是更新了版本):
<provider
name="sqlServerCompact4.0"
enabled="true"
description="Microsoft SQL Server Compact 4.0, provider V4.0.0.0 in framework .NET V2.0"
assemblyName="System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
connectionClass="System.Data.SqlServerCe.SqlCeConnection"
commandClass="System.Data.SqlServerCe.SqlCeCommand"
parameterClass="System.Data.SqlServerCe.SqlCeParameter"
parameterDbTypeClass="System.Data.SqlDbType, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlServerCe.SqlCeDataAdapter"
commandBuilderClass=" System.Data.SqlServerCe.SqlCeCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
allowMARS="false"
/>
【讨论】:
我花了一天左右的时间来完成一个宠物项目。我能够在 .Net Framework 4.0 上使用 Sql Server Compact 3.5 和 iBatis.Net 1.6.2 来实现这一点。如果您希望它在不同的版本上运行,您需要更新 parameterDbTypeClass 属性的 Version 和 PublicKeyToken。
您只需将以下内容添加到您的 provider.config 文件中。
<provider
name="sqlServerCompact3.5"
enabled="true"
description="Microsoft SQL Server Compact 3.5, provider V3.5.1.0 in framework .NET V2.0"
assemblyName="System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
connectionClass="System.Data.SqlServerCe.SqlCeConnection"
commandClass="System.Data.SqlServerCe.SqlCeCommand"
parameterClass="System.Data.SqlServerCe.SqlCeParameter"
parameterDbTypeClass="System.Data.SqlDbType, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
parameterDbTypeProperty="SqlDbType"
dataAdapterClass="System.Data.SqlServerCe.SqlCeDataAdapter"
commandBuilderClass=" System.Data.SqlServerCe.SqlCeCommandBuilder"
usePositionalParameters = "false"
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
allowMARS="false"
/>
【讨论】: