【问题标题】:Avoiding Linq real database operations避免 Linq 真正的数据库操作
【发布时间】:2011-02-02 01:33:17
【问题描述】:

如果我实现这个接口:

public interface IProductsRepository
{
    IQueryable<Product> Products { get; }
}

... 使用 Linq to SQL

这会产生真正的数据库查询吗?

var x = from p in repositoryInstance.Products where price > 100;

如果是这样,我怎样才能避免调用者执行复杂而缓慢的 sql 语句?

【问题讨论】:

    标签: .net sql linq repository-pattern


    【解决方案1】:

    LINQ to SQL(和其他 LINQ 提供程序)不允许无效的 SQL 语句。如果可能,编译时错误将阻止代码编译。如果这不可行,则会在运行时抛出错误。

    【讨论】:

    • 嗨。我的意思是复杂而缓慢的陈述。
    • @Eduardo - 你真的不能,但也没有什么可以阻止你编写一个非常复杂和缓慢的 SQL 语句。
    • @Eduardo:正如 Eric 所说,LINQ 将允许复杂而缓慢的 SQL 语句,就像 SQL 一样。 LINQ 的一个缺点是无法提前知道查询,因此无法进行某些 DB 优化。一般优化是自动的:LINQ 将优化查询,然后 SQL Server 将优化查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2023-02-07
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    相关资源
    最近更新 更多