我可能在多个项目中编写了相同的LINQ to SQL语句4-5次。我甚至不想粘贴它。我们将DBML文件与Repository类结合使用。我想在多个项目中共享同一个库,但我也想轻松更新它并确保它不会破坏任何项目。有什么好办法呢?如果我必须改变我的方法,那就没关系,我不需要与LINQ to SQL和DBML结婚。
我们有控制台应用程序和MVC Web应用程序都使用自己的DBML来访问数据库,有时候主要的数据库更新已经破坏了它们。
此外,由于目前每个项目都从自身访问数据库,有时在另一台服务器上,等等。是否可以消除数据库层在每个项目中的存在?如果我可以通过集中式应用程序管理所有数据库访问,而其他应用程序可以直接使用而不是直接调用数据库,那么它可能有助于解决上述问题并更好地保证安全性和数据完整性。
有什么想法吗?
答案 0 :(得分:1)
我处理这个问题的方法是使用WCF数据服务。我在一个项目中拥有我的数据模型和服务,并在IIS上托管它。我的其他项目(无论它们是什么)只是添加一个服务引用到URI,然后通过网络访问它需要的数据。我的数据库内容全部发生在服务上,我的个别项目根本没有触及数据库 - 他们甚至不知道数据库是否存在。
它运作得很好但是WCF有一些“陷阱”。您甚至可以创建“WebGet”方法来通过服务公开常用方法。
如果您想查看一些示例代码,请告诉我们: - )