初探.NET 4.0中的Entity Framework

    今天无意中看到一篇文章,介绍了.NET Framework 4.0中的Entity Framework的设计与使用。文章开头部分提到了Database First和Model First两种应用程序设计方式。从.NET Framework 3.5 SP1开始,Database First的思想就开始伴随我们,它支持反向工程,可以将数据库中的表反向生成支持DLinq的模型。而从即将到来的.NET Framework 4.0开始,我们就可以以Model First的方式处理问题,即通过白手起家设计模型,而后再生成数据库结构,以便模型对象能够持久化到数据库中。

    看到这里,我备感欣慰。.NET Framework在领域驱动设计上终于迈进了一大步。在我的《【领域驱动设计】.NET实践:立足领域》一文中,我早就提到,软件设计必须立足领域,而不要去管数据库是什么结构、用的什么技术。从.NET 3.0的Database First到.NET 4.0的Model First,这就是进步,.NET从4.0开始,已经慢慢走向领域驱动设计的正路。

    Microsoft ADO.NET Team Blog的这篇文章详细介绍了如何通过模型来生成数据库结构,这让我们对于Entity Framework存在的现实意义有了个直观的认识。微软在通过模型生成数据库结构这一功能上是下了功夫的,用户可以随心所欲地定制DDL的生成过程。不过遗憾的是,从目前来看,Entity Framework没法应对模型变更的情形,例如系统用了一段时间后发现需要更改某些业务逻辑,从而不得不对模型进行修改,这样一来,目前的Entity Framework只能是通过CreateDatabase调用来重新生成数据库结构,而无法动态地对其进行增量修正。

    针对这一问题,Entity Framework开发组的Noam Ben-Ami项目经理回答如下:

1. We do not offer this capability from the designer. The intent is that existing Microsoft or third party tools be used to diff the DDL against the database.(我们不会从设计器上去提供这样的功能,这是因为,已有的Microsoft或者第三方工具可以通过比对DDL和数据库结构来解决这个问题)

2. The system is sufficiently extensible that this functionality can be added in. We may release bits that do this as a codeplex project (or some other public release mechanism.)(Entity Framework具有足够的扩展性,添加这样的功能是完全可行的,我们可能会通过codeplex或者其它的公共发布机制来发布这样的功能)

3. We have gotten sufficient feedback from many sources on this that we will investigate making this functionality a code part of the product as soon as is reasonably possible.(针对这一问题,我们已经通过各种渠道获得了足够的反馈信息,在条件成熟时,我们会对是否将这部分功能做到产品里进行调研)

    总体来讲,我很高兴Microsoft能在DDD上走出如此重要的一步。

转载于:https://www.cnblogs.com/daxnet/archive/2009/07/29/1686972.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值