В чем разница между System.Linq и System.Data.Linq?
Раньше у меня возникали проблемы, пытаясь объявить параметр ChangeAction в методе, при этом IDE говорит, что я могу пропустить пространство имен.
Итак, я нажимаю правой кнопкой мыши и решает его и обнаруживаю, что System.Data.Linq добавлен, и теперь все в порядке.
В чем разница между этими двумя пространствами имен?
Ответы
Ответ 1
Как я понимаю, System.Linq - это общая библиотека Linq - она применяется ко всем типам данных, таким как Списки и т.д.
System.Data.Linq относится к базам данных (aka Linq to SQL), который включает в себя отслеживание изменений (ChangeAction).
Ответ 2
Я считаю, что System.Linq
- это спецификация LINQ-OBJECTS (IEnumerable, IQueryable и т.д.)
В то время как System.Data.Lin
q является специфичным для LINQ-SQL (DataContext и т.д.)
Ответ 3
Как описано здесь:
http://msdn.microsoft.com/en-us/library/system.data.linq.aspx
System.Data.Linq предназначен для доступа к реляционным данным
Ответ 4
Насколько я понимаю, System.Linq - это реализация на уровне общего уровня, которая опирается на
IEnumerable, тогда как System.Data.Linq специфичен для провайдера (LINQ to SQL), который полагается на IQueryable.