繁体   English   中英

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

[英]how does your custom class relate to the database

好的,所以我已经对c#和asp.net进行了足够长时间的研究,并且想知道我创建的所有这些自定义类与数据库之间的关系。 例如。

我有一个班级电话员工

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键入自定义类。

因此,我们现在要运行一个查询以检索员工列表。 我想知道我的应用程序如何映射到Employee类到数据库?

本身而言 ,事实并非如此。 但是,添加任何ORM或类似的内容,您就会变得更加紧密。 例如,LINQ-to-SQL(之所以提到它是因为它很容易与Visual Studio结合使用),通常会(通过工具提供)自定义“数据上下文”类,您可以将其用作:

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

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

还有一些工具可以重复使用您现有的域对象。 每种方法都可以成功-每种方法都有优点和缺点。

如果您只想读取数据,那么它将更加容易。 诸如dapper-dot-net之类的微型ORM允许您将我们的类型与您编写的TSQL一起使用,并处理乏味的实现代码。

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

您可以检查nHibernate ,这是nHibernate的入门

imo,你的问题有点含糊。 但是您要指的是MVC( 模型-视图-控制器 )体系结构的模型。

该模型(您的员工类别)管理应用程序的数据。 因此,它不仅可以获取和设置(保存/更新)您的数据,还可以用于通知数据更改。 (通常是视图)。

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

模型通常还具有处理查找记录和更新记录的功能。 通常,这是通过指定搜索字段来完成的,它返回记录,记录中将包含ID,您通常会将其返回到保存/更新函数中以对记录进行更改。 您也可以绑定到此模型级别以创建要保存的数据的修订版

因此,模型与SQL结构直接相关的方式取决于您对模型的正确处理方式。 或者您决定使用哪个框架。 我相信asp.net的一个常见组件是Microsoft的ASP.Net MVC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM