我正在尝试了解Dot Net Nuke源代码。任何人都可以简要解释数据层的实现方式吗?
我试图在调用存储过程的代码中找到它。
我已经在线阅读了一些视频教程,并且我已经阅读了一些博客,但我还没有找到答案。
答案 0 :(得分:3)
DotNetNuke'数据层'是DotNetNuke.SqlDataProvider
数据层使用抽象的“DataProvider”模型,其中实际的提供程序在运行时确定。实际上,这通常是SqlDataProvider,它使用Sql Server数据库作为DotNetNuke的数据存储区。
理论上,您可以通过编写数据提供程序的不同实现来编写数据提供程序,以允许在DotNetNuke应用程序与任何类型的数据库或数据存储之间进行访问。我想很久以前可能会有一个oracle,但几乎每个安装都使用Sql Server作为数据存储。
SqlDataProvider传统上位于Microsoft.ApplicationBlocks.dll组件之上,因此实际的存储过程调用是通过该层执行的。
DotNetNuke核心的大多数模块和其他扩展也使用自己特定的数据提供程序实现,尽管为简单起见,将Sql数据层构建到单个程序集中已经成为惯例。
您会发现大多数存储过程都会被执行,然后通过CBO对象传回,以便从IDataReader结果集转换为特定对象。
为了找到一个例子,我会选择一个捆绑的核心模块并研究它,就像Html / Text模块一样。
最后,随着DotNetNuke 7的出现,数据提供商模型进入了自DotNetNuke 1.0发布以来的第一次重大修订,即数据访问层2(dal2)。我建议阅读Charles Nurse的一些博客: