我想让我的查询更好,但一直无法找到当查询发送到数据库时列出的资源。
DBContext db = new DBContext();
Order _order = (from o in db
where o.OrderID == "qwerty-asdf-xcvb"
select o).FirstOrDefault();
String _custName = _order.Customer.Name +" "+_order.Customer.Surname;
_custName的赋值是否需要向数据库发出任何请求?
是否分配了_custName
需要向数据库发出任何请求吗?
这取决于是否Order.Customer
是延迟加载的。如果是延迟加载,那么是的。否则,不行。
顺便说一句,如果您设置DataContext.Log
财产:
db.Log = Console.Out;
然后就可以在控制台看到SQL语句了。通过逐步执行程序,您可以准确地看到 SQL 语句何时访问数据库。
查看 MSDN 上延迟加载与立即加载 http://msdn.microsoft.com/en-us/library/bb399393.aspx。特别是,您可以关闭延迟加载 http://msdn.microsoft.com/en-us/library/bb386920.aspx。留意SELECT N + 1 problem https://stackoverflow.com/questions/97197/what-is-the-n1-selects-problem.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)