我在此存储库中创建了数据访问主题的示例。我有关于实体框架、数据优先、代码优先、Orm、数据库创建等主题的示例和项目。
它是一个充当关系数据库和面向对象编程(OOP)之间桥梁的工具。这座桥是我们使用对象模型来管理关系数据库中的信息的结构。简而言之,它是微软开发的一个框架,它将我们的对象连接到数据库,并为我们交换数据。
通过将 LINQ(语言集成查询)查询与实体框架结合使用,我们可以对对象进行强大的查询。 Entity框架提供的服务主要是变更跟踪、身份解析和查询翻译。Entity框架的主要目的是让应用程序开发人员能够专注于应用程序端,而不必太忙于数据操作。作为一个非常简单的示例,我们开发人员完全负责在经典 ADO.NET 应用程序中打开和关闭连接。但是,当您使用实体框架时,您不会干扰此类操作。您准备查询并通过实体框架将其发送到数据库。
实体框架为此使用 3 种不同的项目开发方法。
Model First = 此方法允许通过在 Visual Studio 上添加空模型文件 (.edmx) 来设计此模型上的数据库。编译步骤中给出的脚本文件创建数据库。
Database First = 在这个方向上,我们必要的类是由实体框架通过将先前创建的数据库作为模型连接到项目来创建的。
在这个文件夹中,我首先展示了我的数据库示例。 GitHub 页面。
Code First = 此方法是我们通过在 Visual Studio 环境中开始创建类来执行的方法。我们的数据库是从这些类派生的。在这里,开发人员可以在创建类时通过属性来完成映射操作。顺便说一句,映射过程是我们在表中定义约束的事件。除了属性之外,我们还可以通过不同的方式执行这些操作。例如,Fluent Api 或 Fluent Validation 等工具广泛用于 Mapping 操作。
使用实体框架库,我们可以通过对数据库中的表进行查询来过滤数据。几乎所有可以在 T-SQL 上执行的查询都可以使用实体框架来完成。
这里我展示了基本的选择操作。 GitHub 页面。
您还可以将 T-SQL 查询和报告的集成功能与实体框架库一起使用。
在这里我展示了我们的基本聚合函数。 GitHub 页面。
在Code First结构中,编程语言中的“类”结构对应数据库中的“表”结构,“属性”结构对应数据库中的“列”结构。另外,得益于Attributes,验证可以应用于数据库结构,并且可以对列设置某些条件或限制。最重要的是,它允许您在项目中感受到模型的自动控制,并完全控制地按照您的意愿使用它。
您可以在这里查看我关于该主题的示例。 GitHub 页面。
我创建了一个 vir 数据库,您可以在此处使用。
你可以在这里查看。 GitHub 页面。
它是一种使我们的分层架构项目更有组织性、增加代码的可读性、增强团队合作并使错误管理更容易的结构。事实上,通过这种结构,我们已经使项目编写成为一种标准。由于该结构由 3 个主要层组成,因此今天可以称为多层架构结构。但它实际上依赖于 3 个主要层。这些层是;
-- 数据层 -- 业务层 -- 表示层
在这里,我创建了与我的数据库 .GitHub Pages 相对应的实体。
在这里我创建了我的基础设施层.GitHub Pages。
我在这里创建了我的 UI.GitHub Pages。
Dapper是Stackoverflow开发的微型ORM工具,支持多种数据库。由于 orm 工具自己做了很多事情,这导致它们运行得有点慢。尤其是在交通繁忙的港口,它不是优选的。在这种情况下,Dapper 可能是首选。它是一个单一的“dll”。那么什么是映射接口呢?它也不需要任何配置文件。简而言之,就是简单、快速。在 Github 上开源发布并持续开发。
--Dapper最重要的特点是它非常好的性能。大多数时候,由于这个优点,它是首选。
--您可以轻松地执行查询并将返回的结果轻松绑定到对象。
--最重要的缺点是,由于查询是内联编写的,因此很容易出错。这点应该引起注意。更糟糕的是,这些错误发生在运行时,而不是构建时。
--在 Dapper 中,我们做大部分事情。开发人员必须处理数据库、我们的查询、程序端的资产以及对象的状态。这大大增加了大型项目开发阶段的开发和维护成本。
我尝试在这个存储库中使用两种方法。我在一个存储库中使用 Sql 处理程序,并在另一个存储库中直接在程序上编写查询。
-- 首先我用 SQL 创建了数据库。
-- 之后,我使我的程序适合我将在程序中使用的方法。你可以从这里看。 GitHub 页面
--在我的程序中,我还创建了我的图层和资产,以及我将在我的程序中使用的存储库。这里重要的是给出我的程序以及我将在其中正确使用的参数。否则,我们会得到很多错误。你可以从这里看。 GitHub 页面
-- 我用“connection”创建了与数据库的连接。你可以从这里看。 GitHub 页面
-- 我创建了最新的用户界面并执行了我想要的操作。你可以从这里看。 GitHub 页面
在这里,我编写了将直接在 Sql 中运行我想要的操作的查询。在这里编写查询时确实需要非常小心。一个错误可能会浪费很多时间。至于参数,查询中参数的匹配值必须是正确的。但对我来说,Dapper 中的异常是不言自明的。轻松找出错误确实很有帮助。
你可以从这里看。 GitHub 页面
在这里,我在用户界面中显示了我的操作。
你可以从这里看。 GitHub 页面