向其他客户端公开实体框架实体

本文关键字:实体 框架 其他 客户端 | 更新日期: 2023-09-27 18:17:02

我有一个。net 4类库,其中包含一个实体框架数据模型和一组使用这些实体提供通用功能的类。这些类用于不同类型的应用程序。

所以,我的问题是,将类库中包含的实体暴露给其他应用程序是否被认为是良好的实践?

向其他客户端公开实体框架实体

如果您的实体足够先进,能够满足您的持久性需求您的域需求(或外部应用程序需求),并且"跨层污染"的可能性不大或很低,那么我认为这是一个很好的实践。在敏捷开发的意义上,它也可以是一个很好的实践:现在已经足够好了。

如果你更倾向于成为一个纯粹主义者,那么它就开始成为一个糟糕的实践,因为你增加了耦合,例如,如果你开始添加属性来处理持久性、验证和序列化。

避免这种情况的一些方法是使用AutoMapper、生成代码、或手工编码的facade、服务层和/或适配器来最小化影响。

因为实体框架随着数据库的变化而变化,我不认为这会提供足够的API。相反,我建议创建一个数据传输对象,作为外部代码和需要访问的每个实体之间的中介。此外,考虑创建一个Facade类(服务层),它将在库的内部和外部"客户端"之间进行调解。关于dto的好文章:http://msdn.microsoft.com/en-us/magazine/ee236638.aspx