您的自定义类如何与数据库关联

本文关键字:数据库 关联 自定义 | 更新日期: 2023-09-27 17:53:14

好的,所以我已经学习了c#和asp.net足够长的时间,想知道我创建的所有这些自定义类如何与数据库相关。为例。

我有一个类叫做Employee

public class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string EmailAddress { get; set; }
}

和我有一个数据库与以下4个字段:

ID
Name
EmailAddress
PhoneNumber

似乎自定义类是我的数据库。在asp.net中,我可以简单地在数据库上运行LINQ to SQL命令,而无需键入带有getter和setter的自定义类,即可获得类的整个模式。

假设现在我正在运行一个查询来检索员工列表。我想知道我的应用程序如何映射到我的雇员类到我的数据库?

您的自定义类如何与数据库关联

本身,它不会。但是添加任何ORM或类似的东西,您就开始接近了。例如,LINQ-to-SQL(我提到它是因为它很容易与Visual Studio一起工作),您通常会获得(由工具提供给您)自定义的"数据上下文"类,您可以使用:

using(var ctx = new MyDatabase()) {
    foreach(var emp in ctx.Employees) {
        ....
    }
}

这将自动生成TSQL并将数据映射到对象。默认情况下,工具会创建一个单独的Employee类,但您可以通过部分类来调整这一点。这也支持插入、数据更改和删除。

也有工具允许重用现有的域对象;任何一种方法都可能成功——每种方法都有优点和缺点。

如果你只想读数据,那就更容易了;像dapper-dot-net这样的micro-ORM允许您在编写的TSQL中使用我们的类型,用它来处理繁琐的具体化代码。

我觉得你的问题有点模糊。但是你所指的是MVC(模型-视图-控制器)架构的模型。

什么模型,你的雇员类,管理应用程序的数据。因此,它不仅可以获取和设置(保存/更新)数据,还可以用于通知数据更改。(通常是看风景)。

您提到使用SQL,因此更有可能通过发送表数据的关联数组将其保存到数据库来创建和保存整个员工记录。您对Class的设置将处理唯一的SQL语法来插入数据。在较大的MVC框架中。应用程序的模型继承了几个其他类来处理正确保存到MS SQL以外的不同类型的后端。

通常,模型还将具有处理查找记录和更新记录的功能。这通常是通过指定一个搜索字段,它返回记录,其中将包括ID,您通常会将此返回到保存/更新函数中以对记录进行更改。您还可以连接到模型的这一层,以创建您正在保存的数据的修订

所以模型如何直接关联到你的SQL结构取决于你如何正确处理它。或者您决定使用哪个框架。我认为最常见的asp.net是微软的ASP。净MVC

如果没有ORM工具,您的类不能直接映射到数据库,ORM工具将读取您的配置并根据您的映射自动将您的类映射到DB行。
这意味着您不需要读取行并显式设置类字段,但您必须提供映射文件,并且必须通过ORM框架来加载实体,框架将处理其余的

你可以查看nHibernate,这里是nHibernate的开始