博客园现代化建设——Entity Framework
创始人
2024-07-24 15:30:46
0

在博客园新版博客后台的开发中,为了将园子的现代化建设步伐迈得更大一些,准备装备最先进的武器。之前已经配备ASP.NET MVC 3,目前正在试验刚从微软引进的最新型号新式武器——Entity Framework 4.1 RC。

试验情况分析:

1. 数据库连接字符串的回归

在之前版本的Entity Framework中,微软另搞了一套连接字符串,以至无法直接使用原来的ADO.NET连接字符串。害得我们只能改装它,以重用以前的连接字符串,详见在Entity Framework中重用现有的数据库连接字符串。

在这个版本中,微软终于知错就改,直接使用ADO.NET连接字符串,代码如下:

  1. public class BlogDbContext : DbContext  
  2. {  
  3.     public BlogDbContext()  
  4.         : base(ConfigurationManager.ConnectionStrings["BlogDB"].ConnectionString)  
  5.     {}  

这样多好,虽然是新式武器,原来的炮弹照样用。

2. 失灵的Entity Data Model

这个不知是VS 2010 SP1还是Entity Framework 4.1 RC的Bug,无法在VS2010中通过Entity Data Model向导创建Entity Data Model。见下图:

 

点击下一步,选择连接字符串的窗口一闪而过...然后什么也没发生,.edm文件也没创建。

难道VS2010在玩捉迷藏的游戏?那就捉呗...终于把它给找出来了,方法是:在VS2010的Server Explorer中删除所有的数据库连接。

 

但是,在创建连接字符串之后,“奇迹”出现了:

 

毕竟就不是正式版,出点Bug也情有可原,而且本来也没指望Entity Data Model,只是想从数据库生成实体类,省点力气。既然它失灵了,那就手写实体类代码呗。

3. 实体类与数据库表的自动映射

1) 自动在实体类中发现“主键”属性,前提是属性名称是ID或者实体类名+ID,比如下面的实体类:

  1. public class Blog  
  2. {  
  3.     public int BlogID { get; set; }  
  4.     public string Application { get; set; }  
  5.     public string Author { get; set; }  
  6.     public string UserName { get; set; }  

Entity Framework会自动发现BlogID就是主键,当然,你也可以通过[Key]指定主键。

2) 如果实体类的属性名与数据库表的字段名相同,不需要任何配置,Entity Framework会自动进行映射。

3) 如果实体类的类名与数据库表的表名相同,不需要任何配置,Entity Framework会自动进行映射。否则,要通过下面的代码进行手工映射:

  1. public class BlogDbContext : DbContext  
  2. {  
  3.     protected override void OnModelCreating(DbModelBuilder modelBuilder)  
  4.     {  
  5.         modelBuilder.Entity().ToTable("blog_Config");  
  6.     }  

注:Blog是实体类名,blog_Config是数据库表名。

如果符合自动映射的条件,使用Entity Framework很方便,只要在数据访问层添加Entity Framework的引用,并添加一个继承自DbContext的类,然后就可以随时随地使用。

试验结论:

该武器虽然有部件失灵,但总体来说携带方便,部署灵活,自动化程度高,是现代化建设的必备!

原文链接:http://www.cnblogs.com/dudu/archive/2011/03/22/entity_framework_4_1_rc.html

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...