最近接触到Asp.net MVC 3 ,很“傻瓜”式的开发方式,其实傻瓜只能形容自己,因为MVC 3已经封装得很智能了,把实体类写下去,EF,Entity Framework就可以帮你完成基本的插删改查了,的确很好很强大。不过刚刚接触真的很不习惯,感觉越是别人给你做好的东西,越不知道怎么用。特别是今天,想参照着asp.net官网上的musicstore建立自己项目的model实体类,并生成数据库,却始终不成功,的确把东西想简单了,就容易出问题。
Entity Framework说实话,跟hibernate反向工程生成的类真的很相似,在这些实体类里面已经清晰体现了每个实体对应的表的关系。今天遇到的问题恰恰就是觉得很傻瓜的问题,标示主键和外键,都能直接用DataAnnotations,可是由外键组成的复合组件,就没有那么方便的给你DataAnnotations。查找了很多资料,才发现要用haskey定义复合组件,当一步一步深入的查找时,又发现了原来DataAnnotations的Key封装的就是haskey的设置主键的操作。的确,深深体会到学任何技术不能只看表面,或许表面就一个注释,一个函数,一个类的变量能够完成你需要的功能,但是实际上,很多深入的操作还是需要我去深入的了解和体会,或许只有这样才能够学透一门技术吧。
为了定义一个复合主键,google 搜索haskey 当然最好加entity framework ,很多人就问了怎么定义复合主键 了,然后一步一步,就到了EntityTypeConfiguration,这个类在我的理解就是配置数据库和实体类的映射,然后又要接触到protected override void OnModelCreating(DbModelBuilder modelBuilder)这个函数去添加上为每个实体所加的附加配置,成功运行就可以映射到数据库表了。
上面的感悟,要感谢一个工具,下载地址http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/?1322069170,这个工具可以用hibernate的方法实现从数据库表生成实体类,然后再通过实体类去生成真正的项目对于的数据库,通过这个工具,我也稍稍理解了上面遇到的函数和类的作用。也非常感谢http://www.cnblogs.com/LingzhiSun/archive/2011/05/24/EFPowerTool_1.html的博主,里面有很多关于Entity Framework的文章很值得我接下来好好学习的。
睡觉去了,很多事情等着我去做呢!