Linq to sql 将现有LinqToSQL代码转换为与其他数据库兼容

Linq to sql 将现有LinqToSQL代码转换为与其他数据库兼容,linq-to-sql,ado.net,Linq To Sql,Ado.net,我有一个与SQL Server数据库通信的工作应用程序。 此应用程序使用LinqToSQL 出于多种原因,我想将此应用程序转换为使用Microsoft Access。(这是一小部分数据,可以并发使用,但很少,我希望部署在没有SQL Server访问权限的机器上,并且我希望能够将整个数据库作为一个文件发送给只有Microsoft访问权限的同事) 我应该如何转换应用程序?由于LinqToSQL仅为SQL Server提供,我怀疑我遇到了其他开发人员偶尔遇到的问题;例如,将SQL Server应用程序

我有一个与SQL Server数据库通信的工作应用程序。 此应用程序使用LinqToSQL

出于多种原因,我想将此应用程序转换为使用Microsoft Access。(这是一小部分数据,可以并发使用,但很少,我希望部署在没有SQL Server访问权限的机器上,并且我希望能够将整个数据库作为一个文件发送给只有Microsoft访问权限的同事)

我应该如何转换应用程序?由于LinqToSQL仅为SQL Server提供,我怀疑我遇到了其他开发人员偶尔遇到的问题;例如,将SQL Server应用程序发送到使用Oracle的新站点

我能想到的唯一策略是搜索LinqToSQL每次使用的代码,并将其更改为使用ADO.NET。显然,这将是一项耗时且容易出错的任务

有没有更好的办法,或者我应该咬紧牙关继续下去

下面是一段代码,以防示例有助于对话:

        var existing =
           from ph in _dataContext.pub_hols
           where ph.pub_hol_def_id == this._publicHolidayDefId
              &&
           ph.pub_hol_date.Year == year
           select ph;
        _dataContext.pub_hols.DeleteAllOnSubmit(existing);
        _dataContext.pub_hols.InsertAllOnSubmit(GetPublicHolidays(cellsForYear));
        _dataContext.SubmitChanges();

我建议通过类似nHibernate的方式切换到更通用的DAL。这样,下次您需要再次切换数据库时,就不必更改任何内容。根据LINQ查询的复杂程度,您甚至可以将它们与nHibernate LINQ模块一起使用。该模块仍处于beta测试阶段,我自己无法为它说话。

ADO.NET实体框架是跨数据库的,应该更接近您当前的代码