我有一个与SQL Server数据库通信的工作应用程序。 该应用程序使用LinqToSQL。
由于多种原因,我想将此应用程序转换为使用Microsoft Access。 (这是一小组数据,并发使用是可能的,但很少见,我想部署在无法访问SQL Server的机器上,我希望能够将整个数据库作为一个文件发送到只有Microsoft Access的同事。
我应该如何转换应用程序?由于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();
答案 0 :(得分:0)
我建议通过像nHibernate这样的东西切换到更通用的DAL。这样下次你需要再次切换数据库时,你不必改变任何东西。根据LINQ查询的复杂程度,您甚至可以将它们与nHibernate LINQ模块一起使用。该模块仍处于测试阶段,我不能自己说话。
答案 1 :(得分:0)
ADO.NET实体框架是跨数据库的,应该更接近您当前的代码。