2011-12-05 127 views
1

我有一个.NET 4类库,它包含一个实体框架数据模型和一组使用这些实体提供常用功能的类。这些类用于不同类型的应用程序。将实体框架实体暴露给其他客户端

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

+0

为什么不是? –

回答

1

如果是先进的实体足以满足您的持久性需求您的域名的需求(或外部应用程序的需求),并没有太多的或“跨层污染”的低可能性,那么我说是的,这是一个很好的做法。从敏捷开发的角度来看,它也是一个很好的做法:现在已经足够好了。

给定更长的时间,如果你是一个纯粹主义者更倾向于你,那么它开始变成一个坏习惯,因为你正在增加耦合,例如,如果你开始添加属性来处理持久性,验证和序列化。

避免这种情况的一些方法是使用类似AutoMapper,生成的代码或手形编码外观,服务图层和/或适配器来最大限度地减少影响。

+0

对于大部分类,等等,将用于内部项目,所以我认为公开这些实体是可以接受的。有计划为其他外部团队创建一个api/sdk,这听起来像是DTO和AutoMapper的一个很好的候选者。 – MotoSV

0

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

相关问题