【问题标题】:Will adding partial class properties ruin deferred execution?添加部分类属性会破坏延迟执行吗?
【发布时间】:2010-01-15 15:56:27
【问题描述】:

如果我将属性添加到 linq 实体(例如员工),它只是引用其他属性来实现接口,返回 IQueryable,并且 where 子句提到那些仅指向其他 linq 实体属性的添加属性,将它会导致整个表在内存中而不是在 sql server 中加载和过滤?

我的数据库使用小写字段,linq to sql 将其拉入并希望在实体上使用小写属性,我使用 resharper 并且更喜欢坚持使用 UpperCamelCase 的约定作为公共属性。

【问题讨论】:

    标签: linq-to-sql deferred-execution


    【解决方案1】:

    如果您的属性中的查询接受 IQueryable 作为参数并返回 IQueryable,并且在返回之前没有与 IEnumerable 或 ICollection 之间的转换,则不会在属性中执行查询。它将被扩展,实际执行将发生在转换为 IEnumerable 等的时刻。

    【讨论】:

    • 我的属性是一个简单的别名,例如 linq to sql 有一个名为 ZAssociateId 的字段,为了实现我的 IEmployee 接口,我在部分类中创建了一个名为 AssociateId 的属性,它只返回 ZAssociateId。我不确定如何将您的答案应用于我的用例。
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2018-12-27
    • 2020-12-20
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多