【问题标题】:What is the best practice when you have read-only properties and cannot use the objectdatasource?当您具有只读属性并且无法使用 objectdatasource 时,最佳做法是什么?
【发布时间】:2010-10-27 23:17:42
【问题描述】:

我已经使用 nHibernate 和 objectdatasources 启动了一个 Web 表单项目;但是,我了解到有一些我理解但不知道如何处理的限制。这些限制包括 1) 对象数据源需要无参数构造函数和 2) 业务对象的属性不能是只读的。

我遇到的问题是我的业务层中的一个类设置了一个永远不会改变的属性,我想确保这永远不会发生。我想在创建对象时设置该属性,但将该属性设为只读,以便人们以后无法设置它。我不确定它是否与问题相关,但我也在使用存储库类。

我想我可以简单地使属性读/写,但我认为业务层应该强制执行永不更改属性的规则。有没有一种方法可以在不放宽我的属性必须是只读的业务规则的情况下使用对象数据源。如果我不能使用 objectdatasources,是否还有另一种最佳实践,不包括复制创建对象的逻辑、根据表单值设置它们的属性然后保存?

感谢您对此问题的任何见解。我确信人们过去曾遇到过这种情况,所以我只是在寻找一些方向,以了解如何最好地为 Web 表单站点使用数据源。此外,任何与处理非典型问题相关的书籍或文章的参考资料都会有所帮助。看来我一直在看的所有内容都在构建 CRUD 屏幕...

  • 肖恩

【问题讨论】:

    标签: constructor properties objectdatasource readonly


    【解决方案1】:

    您可以将 nHibernate 映射到字段。这可能会有所帮助NHibernate : map to fields or properties?

    这样你应该可以拥有 RO 属性。

    【讨论】:

    • 是的,这适用于 nHibernate。但是,我不认为 nHibernate 是这里的问题。 ObjectDataSource 似乎不允许在业务对象上设置只读属性。所以,我希望有人可以帮助我处理这个问题的最佳实践。否则,我需要放宽将属性设为只读的业务规则,或者完全停止使用 ObjectDataSource。我觉得奇怪的是,这对于使用 ObjectDataSources 的人来说不是一个更大的问题,或者人们真的不经常使用它们?
    猜你喜欢
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多