图解DotNet框架之四:System.Data

  (声明:本系列只想给大家介绍.net框架,并不是语法和类的使用的讲解,所以只能概括的描述一下所提到的类,如果有疑问可以到MSDN上面去查)      

 

      ADO.net类库有两种完全不同的方式来实现数据访问:连接式和断开式.ADO.NET没有提供单一的方式和不同的数据库进行通信,而是提供了多种数据提供器,这样的好处是可以将某种类型数据库的特性发挥出来.我们来看看ADO.NET中的核心类。

 

 

 

IDbConnection:定义配置某个数据库连接的一些成员。如连接字符串,超时,连接状态等。

 

IDbCommand:定义命令以及所执行的操作。如ComandText,ExecuteReader,ExecuteNonquery,Parameter等。

 

IDbDataParameter:他继承了IDataParmeter并扩展了他,定义了DbType,Direction,ParameterName,Value等。

 

IDbDataAdapter:继承自IdataAdapter,IdataAdapter中主要来完成数据的映射,然后IDbDataAdapter扩展了IdataAdapter,加入了,Delete,select,Update,Insert这四个IDbCommand命令。GOF23中的Adapter(适配器)模式在这里被使用,SqlAdapter等类就是用来适配各种已经有了详细接口的DB。

 

IDataReader:IDataReader继承了IDataRecord并对其扩展,Idatarecord用来定义读取强类型化的数据,Getint16,GetDateTime之类,Idatareader加入了读取对象的常用行为,Next,Depth等。

 

图中Dbconnection,DbCommand等抽象类分别继承了上述的接口,并实现了一些任何数据库都公用的方法而已,这里不再赘述。

 

他们之间的协作关系如图:

 

 

在这里就要讲到题目所示的架构模式中的数据源架构模式和领域逻辑模式,MS在这里用了什么模式呢,首先我们来了解一下数据源都有哪几种架构模式:

1.表数据入口:一个表实例处理数据库表中的所有行.(Adapter中承载了一张表,他就代表数据库,可以对数据进行填删改查等操作)

2.行数据入口:访问表中单条记录地对象,一行一个实例.(DataReader,这里的行数据只能读取,而不能修改.每一次Reader.Next(),就会返回一个数据行.)

3.数据影射器(ORM):.net中没有这种模式,ORM本身就很复杂,这里就不讲解了.

 

在.net中有表数据入口和行数据入口,这两种模式的实现是为了满足一些应用,行数据可以更好的面向对象,表数据操作起来直观.

 

领域逻辑模式,也就是所谓的业务罗基层,它有以下几种架构模式:

1.事物脚本:也就是使用过程来实现业务逻辑.老ASP的写法,就是这种过程性的编程.

2.领域模型:合并了行为和数据的对象模型,比如你建立了一个Person类,里面包括他的名字,这就是数据,然后你的业务逻辑是给他改名字,就会做一个改名字的方法.这就是简单的领域模型.

3.表模块:处理数据库表或视图中的所有业务逻辑的一个实例,他通常需要平台的支持,而.NET中的DataSet就是这种模式的应用。

 我们可以用Dataset来完成我们的业务逻辑,一个很方便的应用.

  

  下一篇: 图解DotNet框架之五:System.Reflection  

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在UE中,"UnrealBuildTool"是一个用于编译和构建项目的工具。根据引用和引用中的信息,"dotnet"命令无法正常运行,可能是因为没有正确配置DOTNET环境变量。您可以尝试以下步骤来解决此问题: 1. 检查DOTNET环境变量是否正确配置。根据引用中的信息,DOTNET_ROOT应该被设置为"C:\Program Files\Epic Games\UE_5.1\Engine\Binaries\ThirdParty\DotNet"。请确保该环境变量已正确设置,如果没有设置,请按照引用中提供的路径进行配置。 2. 确保您的系统上已安装了.NET Core SDK。您可以从Microsoft的官方网站上下载并安装最新版本的.NET Core SDK。 3. 如果您已经安装了.NET Core SDK并且DOTNET环境变量已正确配置,但问题仍然存在,请尝试重新安装UE,并确保在安装过程中选择了正确的选项和路径。 如果您在尝试上述步骤后仍然遇到问题,请参考UE的官方文档或向UE的社区寻求帮助,以获取更详细的指导和解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [UE5.1.1 创建C++项目失败](https://blog.csdn.net/ldghd/article/details/131978868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [UE5.1.1 C++ 环境问题解决](https://blog.csdn.net/qq_31329259/article/details/129754209)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值