Класс DataContext специфичен для SQL Server? - PullRequest
2 голосов
/ 14 сентября 2010

Страница MSDN для класса DataContext гласит:

Представляет основную точку входа для инфраструктуры LINQ to SQL.

Тем не менее, похоже, что конструкторы займут любой ADO.NET IDBConnection.Правильно ли я считаю, что DataContext может обернуть любое соединение ADO.NET?Или есть какие-то особые вещи, которые необходимо учитывать при использовании соединения с источником данных, отличным от SQL Server?

В разделе замечаний в статье MSDN о классе DataContext говорится:

DataContext является источником всех сущностей, отображаемых через соединение с базой данных.Он отслеживает изменения, внесенные вами во все извлеченные сущности, и поддерживает «кэш идентификаторов», который гарантирует, что сущности, извлеченные более одного раза, представлены с использованием одного и того же экземпляра объекта.

Например, можно ли использоватьDataContext для чтения и обновления базы данных SQLLite путем создания DataContext с поставщиком System.Data.SQLite ?

Это немного сбивает с толку, потому что кажется, что все, что я вижу, написанное о Linq всегда такжеупоминает SQL Server, но я никогда не уверен, что это только на примере или SQL Server является единственной базой данных, которая будет работать.

Ответы [ 2 ]

2 голосов
/ 14 сентября 2010

Хотя DataContext (поставляется с обычным .NET) предназначен для использования с LINQ-to-SQL, существуют и другие реализации, такие как DbLinq (теперь используется в Mono), который поддерживает несколько баз данных.

Пример SQLLite приведен на странице Mono .

2 голосов
/ 14 сентября 2010

DataContext является частью LINQ to SQL.LINQ to SQL является специфическим для SQL Server.

Возможно, вам следует изучить Entity Framework, которая предназначена для поддержки нескольких баз данных.

...