我们有一个 n 层架构:
- 与数据库通信并处理所有业务逻辑的 WCF 服务。-与 WCF 服务通信的 ASP.NET MVC 网站。
这是从数据库到“吉他”的 html 视图的数据序列化-反序列化的场景:
-Guitar_1 由 linq 生成的类,-Guitar_2 由 WCF 服务公开并由 ASP.NET MVC 网站使用的 DataContract。-Guitar_3 模型传递给视图
当最终用户想要取回吉他时,Guitar_1 被转换为 Guitar_2,然后转换为 Guitar_3。这确实不是问题,但如果最终用户请求吉他列表,那么所有这些过程都会为每把吉他重复(一个循环)。
如果我必须以编程方式处理所有序列化-反序列化的东西,我每层只有一个类。例如,它仍然可以通过在 Linq 类上注释“DataContract”/“DataMember”在 wcf 项目中完成,但是如果我刷新我的数据库模型,我的所有注释都会消失(在 ASP.NET MVC 项目上也是如此,刷新服务参考删除所有添加的代码)。
此外,使用这些自动序列化程序真的更有效率吗?编写序列化器-反序列化器所花费的时间与注释类(DataContract/DataMember)和处理类 Guitar_1 到 Guitar_2 的转换一样多......再加上性能损失(循环和转换)......
你们有什么感想?因为这个,你们中的一些人会像过去一样编码吗?
更新:正如“Abhijit Kadam”所建议的,我在使用 web 服务时使用了部分类,但是,在使用 Linq2SQL 时我找到了一个更好的解决方案:POCO 类。