Linq-To-Sql数据库调用

时间:2011-05-13 17:57:39

标签: c# asp.net linq-to-sql

我找不到答案。我确信答案很简单,我不认为我在寻找合适的东西。

我有一个包含两个表的.dbml文件:Employees和Departments。两者之间存在关系,员工有一个DepartmentID。

无论如何,我在我的代码中这样做:

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对象时加载了所有信息?

2 个答案:

答案 0 :(得分:4)

当您第一次访问emp.Department.Name时,它访问了数据库,除非deferred loading is turned off

当您在下一个语句中说emp.Department.Code时,它不会再次出现,它会在内存中找到Deparment个对象。

answer更详细地解释了它。

您可能想看

答案 1 :(得分:0)

查询仅执行一次以检索数据。之后,它将在内存中的上下文中进行跟踪。

您可以使用SQL事件探查器验证这一点。

相关问题