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