我的项目结构:
一个数据访问层类库,使用EF从数据库中映射实体类,在App.Config中有数据库的连接字符串。
若干个上层项目(主要是Web项目),都引用了该数据访问层类库,但是如果不在各个上层项目的Web.Config中再写一遍连接字符串的话,数据访问层的方法就执行不了。
写数据访问层的目的就是为了不在上层项目中直接对数据库进行操作,而是通过数据访问层间接地和数据库进行交互。但是如果都要写连接字符串的话,两个层次间的耦合度就太大了,数据访问层也就失去了它的意义。
我想问问如何配置才能不用重复写连接字符串,使得上层项目和数据访问层类库解耦?
你的想法完全反了
只有每次都配置, 才叫解耦。
否则, 一个dll编译完了就只能用一个连接字符串, 这不但没有解耦, 反倒是hard code
举个最简单的例子, 你重写一下构造函数, 传入一个hard code的链接字符串, 你的需求就完成了。
但是当别人需要修改的时候, 比如数据库迁移到另一台机器了, 难不成要重新编译代码么?
数据访问层是提供访问的能力, 而不是提供“对xx数据库的访问能力”。
知道了,那我还是老老实实地去配置每一个Web.config吧