SQL 服务器 CE 与 SqlClient
SQL Server CE vs SqlClient
SqlServerCe
和 SqlClient
代码有什么区别? EF 代码首先需要 SqlServerCe
,还是也可以 SqlClient
?如果我在本地数据库上操作,我应该选择什么供应商?
我的 app.config
看起来像这样:
<entityFramework>
<defaultConnectionFactory
type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0"
type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
<provider invariantName="System.Data.SQLite.EF6"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)"
invariant="System.Data.SQLite.EF6"
description=".NET Framework Data Provider for SQLite (Entity Framework 6)"
type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".NET Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
我想摆脱 SqlServerCe
或 SqlClient
,因为我认为没有理由在我的配置中使用这两个提供程序。
编辑:如果我专注于 Azure 驱动的数据库,我应该选择哪个提供商? (本地或远程数据库是否需要不同的提供者)
SqlServerCe
为单用户单机SQL服务器精简版,微软官方已不再支持
SqlClient
是 完整、完整 SQL 服务器的提供者——也是 Azure 数据库产品的基础。
EF 6 肯定支持这两种提供程序。
如果你想删除任何东西 - 一定要删除 SqlServerCe
并保留真实完整的 SQL 服务器!但从技术角度来看,这是两种非常不同的数据库技术,很可能存在两种
都需要的情况
SqlServerCe
和 SqlClient
代码有什么区别? EF 代码首先需要 SqlServerCe
,还是也可以 SqlClient
?如果我在本地数据库上操作,我应该选择什么供应商?
我的 app.config
看起来像这样:
<entityFramework>
<defaultConnectionFactory
type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0"
type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
<provider invariantName="System.Data.SQLite.EF6"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
<remove invariant="System.Data.SQLite.EF6" />
<add name="SQLite Data Provider (Entity Framework 6)"
invariant="System.Data.SQLite.EF6"
description=".NET Framework Data Provider for SQLite (Entity Framework 6)"
type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider"
invariant="System.Data.SQLite"
description=".NET Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
</DbProviderFactories>
我想摆脱 SqlServerCe
或 SqlClient
,因为我认为没有理由在我的配置中使用这两个提供程序。
编辑:如果我专注于 Azure 驱动的数据库,我应该选择哪个提供商? (本地或远程数据库是否需要不同的提供者)
SqlServerCe
为单用户单机SQL服务器精简版,微软官方已不再支持
SqlClient
是 完整、完整 SQL 服务器的提供者——也是 Azure 数据库产品的基础。
EF 6 肯定支持这两种提供程序。
如果你想删除任何东西 - 一定要删除 SqlServerCe
并保留真实完整的 SQL 服务器!但从技术角度来看,这是两种非常不同的数据库技术,很可能存在两种