gpt4 book ai didi

WCF 和 Fluent NHibernate : how can i keep "clean" classes?

转载 作者:行者123 更新时间:2023-12-03 16:53:53 24 4
gpt4 key购买 nike

我正在为一个内部项目同时研究 Nhibernate、jquery 和 WCF,我想知道为什么我不能拥有“干净”的数据类。

根据我的阅读,nhibernate 世界中的一个非常好的观点是我的业务类不会链接到框架。我不会的

<SaveInTable("Thingie")> _
Public Class Thingie
<ColumnName("ThingieId")> _
Public Property Id as Integer
' accessors
End Class

而是类似于

Public Class Thingie
Public Property Id as Integer
' etc

然后

Public Class ThingieMapping
Inherits ClassMap(Of Thingie)
' etc, omitted for brevity's sake

我不明白的是,如果我想使用 jQuery 在网页中列出 Thingie,并且如果我想使用带有 jquery 的 WCF 网络服务 (它看起来像我在各种教程中看到的当前趋势),我发现自己必须将 DataContractDataMember 属性添加到我的 Thingie 类。
另一方面,经典的 ASMX web 服务不会打扰我,让我检索 Thingie 类而不用担心添加属性。

我觉得我在这里遗漏了一部分图片;尝试保持 Thingie 类大部分独立似乎合乎逻辑,但到目前为止我还没有找到示例。

那么,我是否必须放弃所有希望并坚持使用经典的 Web 服务,或者有没有办法让我的 WCF 蛋糕也吃掉?

最佳答案

我建议您使用 DTO 通过网络发送 - 然后您可以使用必要的属性修饰 DTO。

当然,这意味着您必须以某种方式将域类映射到 DTO,反之亦然。如果映射很简单(+一些满足某些约定的其他情况),您可以使用 AutoMapper为此。

使用 DTO 有几个好处,最好的是您可以清楚地分离关注点 - 您的 NHibernate 映射域模型是关于在您的域中建模的东西,而您的 DTO 是用于通过网络发送数据。然后,如果其中一个发生变化,则另一个不一定也需要更改。

关于WCF 和 Fluent NHibernate : how can i keep "clean" classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/911410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com