个人摸索使用vs2017自带数据库LocalDB(三)

本文介绍了如何使用VS2017自带的LocalDB数据库,探讨了ADO.NET的抽象基类、数据提供工厂模型以及断开式连接模型。在实践中,作者遇到并解决了关于连接字符串错误、关键字冲突的问题,并分享了尝试使用EF框架建立EDMX文件的经验,指出EF6可能存在的变化与不足。

前面说了数据提供程序建立在6个抽象基类之上,特定的数据库继承了这些基类。

所以利用抽象基类以及对应的抽象接口,我们就能够构建灵活的代码库。

如果现在做一个针对sel server的应用程序,下一次转向其他数据库平台。就不像特定数据库的数据提供程序那样硬编码,无需重新修改,编译程序。

在抽象基类以及接口上,ADO.NET还提供了一个叫DbProviderFactorys的类,这个类也叫做数据提供工厂模型。

工厂模型就是对抽象基类和接口的再包装,通过静态方法.GetFactory,并指定包含数据提供程序的.NET命名空间名称,就能获取相关的对象(比如连接,命令,数据读取器等)。

//工厂模型
DbProviderFactory df = DbDbProviderFactorys.GetFactory("System.Data.SqlClient");

using(DbConnection cn = df.CreateConnection())
{
cn.ConnectionString= "连接字符串";
cn.Open();

DbCommand cmd=df.CreateCommand();
cmd.Conection=cn;
cmd.CommandText="Select*From 表格名";
using(DbDataReader dr=cmd.ExecuteReader())
{
while(dr.Read())

}
}

在这里插入图片描述
在这里插入图片描述
但是数据工厂模型也有缺点,代码只能通过抽象类的成员来使用所有提供程序通用的方法。
使得我们不能直接访问特定DBMS的漂亮功能。
并且这种模型需要一直保持对数据库的连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值