繁体   English   中英

将数据库放在visual studio解决方案下用于构建和点击一次部署的位置?

[英]Where to put database under visual studio solutions for build and click once deployment?

我正在编写一个应用程序,它将访问本地数据库(MS Access)作为远程SQL服务器的缓存。

我有一个“逻辑”项目和一个“UI”项目。 当前在UI项目中的.accdb文件和构建操作设置为内容,如果更新则复制。 但是,从某种程度上来说,这确实是错误的,但是我不确定什么是正确的系统方式来处理它。

我应该创建一个数据库项目吗? 但老实说,在数据库项目方面我很无能为力,不知道从哪里开始学习。 此外,visual studio中可用的选项似乎只是基于SQL。

我想也许我应该创建一个新项目,将.accdb作为内容添加到项目中,添加用于版本升级,迁移,架构更新的代码,这些代码目前不是解决方案中的任何位置。

我应该走哪条路?

我认为您应该使用默认选项: Copy To Output Directory=copy if newer'这样,构建将在您构建项目时复制该文件。

为了创建清晰的职责分离,将您的数据访问权限放在除UI项目之外的其他位置; 即在一个单独的项目中。 然后,您的UI项目将使用数据访问项目来执行相关的数据操作。

提取UI项目知道的数据访问项目实现的接口(IDataAccess或其他)。 您可以将接口放在您的UI代码引用的另一个项目(例如,称为ShareInterfaces)中,并且您的数据访问项目引用和实现。 然后,您可以在UI代码中使用依赖注入来获取IDataAccess的实现。

有许多开源依赖注入(或有时已知的IoC)框架。 我以前使用过Ninject,它适用于简单的情况 - 不需要XML配置,你可以在代码中以声明方式完成所有绑定。

依赖注入并不重要,但它确实提供了一种很好的方法来解耦代码中的依赖项并使代码单元可测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM