【发布时间】:2015-02-23 14:58:15
【问题描述】:
我正在开发一个将客户端-服务器应用程序迁移到 .NET 的项目。现在我将项目分为 3 层:
* DataLayer (Entity framework) DLL
* ServiceLayer (WCF Service) DLL
* ClientLayer (WPF EXE, using MVVM pattern)
App需要连接多个数据库(结构类似)。数据库经常更改以反映新的业务需求)。
现在我的问题是:
1) 这种场景是否适合Entity Framework(因为处理 数据库更改)?
2) 在这种情况下,如果我需要添加一个新字段来表示客户表,我应该将该字段添加到数据库中,然后更新 DataLayer 上的架构,对吗?我还需要更新服务层的合同以反映代理类......并且还需要修改客户端以更改视图以获取新字段并将其发送到数据库。所以我需要为一个单一的重新编译所有三个模块 字段添加到一个表?
3) .NET 上是否有解决此问题的最佳替代方案,如果我需要向一个表中添加一个新字段,我只需要重新编译客户端代码?
谢谢!
【问题讨论】:
-
如果我正确阅读了这个问题,那么这个问题完全与实体框架和更改数据库模式有关 - 除非我错过了问题的某些方面,否则你最好修剪 WCF不相关的东西。
-
当您说“多个数据库(结构相似)”时,您的意思是数据库具有相同的结构,还是数据库有细微的差异?如果数据库有差异,最好举一些例子。
-
@Justin:我提到 WCF 是因为在发生数据库更改时与重新编译相关的复杂性。在提到的情况下(一个新字段添加到表中)我需要重新编译所有三层(如果我错了,请纠正我)
-
WCF 也不支持匿名类型,所以我需要明确指定所有方法返回的类型。
-
数据库可能略有不同。表可以相同,但数据库 A 上的视图可以在数据库 B 上具有不同的列
标签: c# .net entity-framework wcf