【发布时间】:2017-07-18 12:58:35
【问题描述】:
我正在开发一个客户端-服务器应用程序,其中服务器作为 REST 服务运行并连接到 SQL 服务器。类是从 *.dbml 文件 (LINQ->SQL) 自动生成的。
我的问题是:我应该为服务器和客户端之间的数据交换创建新类还是只使用双方生成的类?
使用从 *.dbml 生成的相同类 - PROS
更好的可持续性(自动生成数据约束)
由于在两个数据对象之间复制数据而导致数据错误的可能性更低 -(模型是自动生成的,您无需维护将值从生成的模型复制到另一个模型)
-
更快的速度。您只需在服务器上创建一个模型实例。
- (当您的 A 类和 B 类表示相同的数据时,您必须创建这两个类的实例)
使用从 *.dbml 生成的相同类 - 缺点
- 客户端确切知道数据库表结构和使用的数据类型
【问题讨论】:
-
这是对利弊的合理总结。
-
对我来说另一个缺点是,客户可能会以不同的方式使用模型,例如对于可能需要或不需要某些字段的地址,我会在视图模型中属性的注释中使用不同的
required定义来实现。另一个缺点可能是,您通常不仅想改变一个模型的属性,还想改变各种模型的混合。
标签: c# rest linq-to-sql dbml