【问题标题】:How to lazy-load a single property on a Linq entity?如何在 Linq 实体上延迟加载单个属性?
【发布时间】:2008-11-20 16:23:45
【问题描述】:

我正在手动将 Linq 编码为 SQL 实体,并且有一个大型 XML 列,我不想在每次加载该实体时都加载它,因为它不经常使用。在我搜索的所有地方,我都看到 Linq to SQL 设计器提供了“延迟加载”属性,但 ColumnAttribute 类没有任何关于如何实现的提示。

我已经收集到它与 System.Data.Linq.Link 类有关,但我还没有找到使它起作用的魔法。

有人知道如何在手动编码的 Linq to SQL C# 类中实现延迟加载属性吗?

【问题讨论】:

    标签: c# linq linq-to-sql


    【解决方案1】:

    我已经剖析了设计师生成代码的结果。

    第 1 步:使用 System.Data.Linq.Link 类型创建私有成员:

    private System.Data.Linq.Link<String> _columnName;
    

    第二步:将Column属性的Storage参数设置为此成员名,并填写属性getter和setter:

    [Column(Name = "column_name", Storage = "_columnName"...]
    public String ColumnName 
    {
        get
        {
            return _columnName.Value;
        }
        set
        {
            _columnName.Value = value;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多