LINQ to SQL поддерживает отложенная загрузка отдельные свойства. В конструкторе DBML вы можете установить Delay Loaded
в true
в свойствах столбца. Столбцы, которые загружены с задержкой, не будут включены в начальные значения SELECT
. Если вы попытаетесь получить доступ к свойству объекта, и он еще не был загружен, то будет выполнен другой оператор SELECT
, чтобы вывести это значение из БД.
Если вы редактируете файл DBML вручную, установите <Column IsDelayLoaded="true">
. Если вы пишете свои классы LINQ to SQL вручную, это так же просто, как объявление поля поддержки свойства как Link<T>
вместо T
. Например:
[Table]
public class Person
{
private Link<string> _name;
[Column(Storage = "_name")]
public string Name
{
get { return _name.Value; }
set { _name.Value = value; }
}
}
См. Также раздел «Задержка / отложенная загрузка» в этой публикации Скотта Гатри .
Обновление: приведенный выше ответ применяется, если вы хотите, чтобы столбец оставался доступным, когда вам это нужно. Он не будет включен в SELECT
с, если вы не попросите об этом (см. LoadOptions
) или не попытаетесь получить к нему доступ.
Если вы просто не хотите использовать или получать доступ к столбцу вообще, и вы не хотите, чтобы он был доступен как свойство класса, тогда перейдите к ответу Serapth об удалении столбца из DBML файл. Убедитесь, что вы понимаете последствия, такие как проверка потери параллелизма в этом столбце.