c# – Linq-to-SQL何时运行查询?
发布时间:2020-12-16 01:47:25 所属栏目:百科 来源:网络整理
导读:你能告诉我 Linq2SQL对我的sql server执行查询的位置吗?我希望它映射到我的名为Car的域对象后发生. public class Car{ public Guid CarId { get; set; } public string Make { get; set; } public string Model { get; set; } public int HorsePower { get;
你能告诉我
Linq2SQL对我的sql server执行查询的位置吗?我希望它映射到我的名为Car的域对象后发生.
public class Car { public Guid CarId { get; set; } public string Make { get; set; } public string Model { get; set; } public int HorsePower { get; set; } } public class CarRepository { private readonly MyDataContext _dc; private readonly Func<DbCar,Car> _mappedCar = c => new Car { CarId = c.CarId,HorsePower = c.HorsePower,Make = c.Make,Model = c.Model,}; public CarRepository(MyDataContext dc) { _dc = dc; } public Car GetCar(Guid carId) { var car = _dc.GetTable<DbCar>() .Select(_mappedCar) .Single(c => c.CarId == carId); return car; } } 解决方法
那是对的.延迟执行SQL查询,直到调用Single().
您可以通过像这样断开查询并添加断点来确认这一点: var carQuery = _dc.GetTable<DbCar>().Select(_mappedCar) // <= breakpoint var car = carQuery.Single(c => c.CarId == carId); 如果针对数据库运行profiler,则应该在单步执行代码时查看执行查询的位置. 更多信息:LINQ and Deferred Execution (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |