0

我正在寻找有关将实体传递到程序集边界之外的最佳实践的意见。我正在使用 Linq-To-SQL,但同样的问题也适用于实体框架、NHibernate 等。

我有一个想在多个项目中重用的程序集。其中有几个实体到目前为止我一直保留在内部,但是我发现将实体列表返回给调用者是有益的。我应该创建一个新类来封装数据还是应该只公开实体本身。

例如,假设我有一个地址实体。拥有一个返回地址实体的方法 GetAddress(...) 会更好,还是应该创建另一个具有相同属性的类来公开地址数据?

谢谢!

4

2 回答 2

0

您可能需要考虑使用存储库将实体公开给外部程序集。 是一篇很棒的 CodeProject 文章,介绍了可与 EF 一起使用的通用存储库。

于 2009-12-11T16:41:25.080 回答
0

一票仅公开实体。在实践中,将实体隐藏在 DTO 后面的原因最终并不相关。例如,您最后一次为完全不同的东西剥离内部数据访问层是什么时候,这会导致您丢失自动生成的实体类?

另外,您可以通过避免仅公开 DTO 时进行的痛苦映射练习来节省时间。IMO,拥有一个使用反射或其他东西的自动映射工具并不算是没有痛苦,因为现在你付出的代价是你在乏味中付出的代价。

于 2009-12-11T16:48:38.500 回答