好的,我已经研究了 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/