Linq-to-Sql 数据库调用
本文关键字:调用 数据库 Linq-to-Sql | 更新日期: 2023-09-27 17:56:17
我找不到答案。我相信答案很简单,我不认为我在寻找正确的东西。
我有一个 .dbml 文件,其中包含两个表:员工和部门。两者之间有关系,员工有一个部门ID。
无论如何,我在我的代码中这样做:
Employee emp = Employee.Get(123);
string fname = emp.FirstName;
string lname = emp.LastName;
string deptName = emp.Department.Name;
string deptCode = emp.Department.Code;
我想知道的是,每次我打电话给emp.Department
,这是在进行数据库调用吗?还是在创建 Employee 对象时加载了所有这些信息?
当您
第一次访问数据库时,它会访问数据库emp.Department.Name
除非关闭延迟加载。
当您在下一个语句中说emp.Department.Code
时,它不会再进行一次旅行,它已经在内存中获取了Deparment
对象。
这个答案更详细地解释了它。
你可能想看
- LINQ-to-SQL 或 LINQ 在什么时候向数据库发送请求
- linq to sql 会自动延迟加载关联的实体吗?
- 博客:Linq to SQL 延迟加载 - 延迟加载
查询仅执行一次以检索数据。之后,它会在内存中的上下文中跟踪。
可以使用 SQL 事件探查器对此进行验证。