2013-10-14 38 views
0

通常我们在应用程序的多个命名空间,例如支持,新闻,会员,...
我使用EF V5。它自动生成POCO类,但这些类位于相同的命名空间中。
我想在成员的命名空间一些POCO类和一些类以支持和...然后我定义另一个部分类的扩展生成的POCO类(添加静态方法和...)。
是否有可能或者我错了。

注意:在此认可中,我不希望使用News类和NewsManager类进行CRUD操作。如何生成每个EF POCO类相关的命名空间

+0

可以调整T4模板('.tt')做你的需要。该文件用于生成代码。 – user2674389

+0

是的,但请给我完整的解决方案 – mmtemporary

+0

似乎你想为数据库中的聚合定义单独的上下文。 –

回答

0

我创造了一个关于如何产生的POCO模型的问题/类应该与关注分离使用,并且我们意识到,最好的方法是创建自定义模型/班,而不是直接在应用程序中使用波苏斯。

看到有:Dal (with Entity Framework) and Model layers into MVC

因此,你可以任意命名空间或品质设置为自定义模式/班。 '坏'是:您需要将POCO数据(从EF接收)转置到您的自定义模型/类。 (在Tallmaris上面的链接中,建议使用AutoMapper来完成这项工作,但我手动完成)。

我知道你的问题是关于你的应用程序中使用POCO,但定制自动生成的可能影响EF的绑定甚至失去您的自定义(命名空间)时更新EF结合。真的,我不知道这是否真的很危险,但我会为了安全和组织而做这些事情,并且保持简单!

+0

感谢@Wanger,但在我的想法AutoWrapper不是RAD解决方案在这里。 AutoWrapper在SOA架构和DTO中是很好的建议。我想要的是为DataModel中的某些类(POCO生成的类)定义不同的名称空间。我想一些方法和计算的属性添加到部分POCO类 – mmtemporary

+0

但请记住,POCO是(自动生成)DTO,这就是为什么我告诉你定制它不能保持那么简单,这就是为什么是不容易的定制他们,他们是作为DTO。如果您为每个POCO创建自定义类(使用自定义命名空间,方法...)(无需AutoMapper即可完成,每个类需要5分钟)将更像是POCO的扩展,而不是体系结构更改。你是否同意我的观点? –

+0

亲爱的Wanger,POCO是一个DTO,但具有面向对象的行为。所以在非SOA架构中,我们不需要有两个类(没有复杂的场景)。 1-正确命名空间中的POCO生成的类和2个自定义类(它们在大多数属性中相似)。 我的重点是防止重复。 – mmtemporary