Kie*_*ran 2 c# linq asp.net linq-to-sql
我想让我的查询更好,但是无法找到一个资源,当查询被发送到数据库时.
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;
Run Code Online (Sandbox Code Playgroud)
_custName的赋值是否需要向数据库发出任何请求?
是否
_custName需要向数据库发出任何请求?
这取决于是否Order.Customer懒惰.如果它是懒惰的,那么是的.否则,没有.
顺便说一下,如果设置DataContext.Log属性,则可以轻松调查:
db.Log = Console.Out;
Run Code Online (Sandbox Code Playgroud)
然后,您可以在控制台上查看SQL语句.通过单步执行程序,您可以确切地看到SQL语句何时命中数据库.
查看延迟与立即加载的 MSDN .特别是,您可以关闭延迟加载.注意这个SELECT N + 1问题.
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |