c# - 您的自定义类与数据库有何关系

标签 c# asp.net

好的,我已经研究了 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 的自定义类。

让我们这么说吧,现在我正在运行一个查询来检索员工列表。我想知道我的应用程序如何映射到我的 Employee 类到我的数据库?

最佳答案

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

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

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

还有一些工具允许重新使用现有的域对象;任何一种方法都可以成功 - 每种方法都有优点和缺点。

如果只想读取数据,那就更简单了;微型 ORM(例如 dapper-dot-net)允许您将我们的类型与您编写的 TSQL 一起使用,并处理繁琐的具体化代码。

关于c# - 您的自定义类与数据库有何关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5772419/

相关文章:

c# - 如何使用 FluentAssertions 测试嵌套集合

javascript - 在asp项目中调用js文件

asp.net - Javascript 数据绑定(bind)和 SEO

c# - 并行处理队列的好策略是什么?

c# - 如何验证 JWT token

c# - System.Data.SQLite 锁/共享冲突

asp.net - IIS 404 自定义错误未按预期工作

C# 创建一个定时器循环,每 30 分钟运行一次代码?

c# - 使用字符串而不是 id 的 REST webapi URI GET 未按预期路由

c# - 预编译 View 不影响性能