我正在将Linq手动编码为SQL实体,并且每次加载此实体时都有一个我不想加载的大型XML列,因为它很少使用。在我搜索的任何地方,我看到Linq to SQL设计器提供了“Delay Loaded”属性,但ColumnAttribute类没有任何关于如何实现它的提示。
我收集它与System.Data.Linq.Link类有关,但我还没有找到使它工作的神奇咒语。
有没有人知道如何在手动编码的Linq to SQL C#类中实现延迟加载的属性?
答案 0 :(得分:3)
我已经剖析了设计师生成的代码的结果。
步骤1:使用System.Data.Linq.Link类型创建私有成员:
private System.Data.Linq.Link<String> _columnName;
步骤2:将Column属性的Storage参数设置为此成员名称,并填写属性getter和setter:
[Column(Name = "column_name", Storage = "_columnName"...]
public String ColumnName
{
get
{
return _columnName.Value;
}
set
{
_columnName.Value = value;
}
}