博客园现代化建设——Entity Framework

博客园现代化建设——Entity Framework

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

试验情况分析:

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

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

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


public

class
BlogDbContext : DbContext
{


public
BlogDbContext()
:

base
(ConfigurationManager.ConnectionStrings[

BlogDB

].ConnectionString)
{}
}

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

2. 失灵的Entity Data Model

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

2011032210421817.jpg

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

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

2011032210541695.jpg

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

2011032210554360.jpg

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

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

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


public

class
Blog
{


public

int
BlogID {
get
;
set
; }

public

string
Application {
get
;
set
; }

public

string
Author {
get
;
set
; }

public

string
UserName {
get
;
set
; }
}

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

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

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


public

class
BlogDbContext : DbContext
{


protected

override

void
OnModelCreating(DbModelBuilder modelBuilder)
{

modelBuilder.Entity

<
Blog
>
().ToTable(

blog_Config

);
}
}

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

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

试验结论:

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110640.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!「建议收藏」

    计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!「建议收藏」各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。实际上,一些好的基本习惯是时时刻刻在影响着我们自己的,不仅是在学校的学习生活中,还是在毕业后的工作生活中。今天我要给大家说就是,使用键盘的习惯。有的同学可能会诧异,键盘谁不会用啊,

    2022年7月16日
    25
  • a标签下划线的坑

    a标签下划线的坑问题来源描述在使用Vux的tabbar组件,发现底部导航文字会有下划线,用chrome的开发者工具去找到该标签,发现就是一个span,利用各种CSS手段去删除下划线,都不起作用,但是删除这个span标签文字就消失了,span的样式里面也没有出现让其产生下划线的样式,绞尽脑汁去想各种CSS或者是JS能让span控件产生下划线的东西,一点头绪都没有。后面想想唯一的可能性就是a标签了,于是往上去找s…

    2022年5月2日
    48
  • 当你想进行简单性能测试监控的时候应该如何选择监控命令?「建议收藏」

    当你想进行简单性能测试监控的时候应该如何选择监控命令?「建议收藏」当你想进行简单性能测试监控的时候应该如何选择监控命令?

    2022年4月20日
    109
  • 基于SpringBoot的JWT单点登录

    基于SpringBoot的JWT单点登录单点登录单点登录SSO,分布式架构中通过一次登录,就能访问多个相关的服务。快速入门首先引入Jwt依赖<!–JWT–><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4&

    2022年5月11日
    44
  • 小白学电脑计算机的组成,新手学电脑步骤,从零开始学电脑「建议收藏」

    小白学电脑计算机的组成,新手学电脑步骤,从零开始学电脑「建议收藏」如今,手机已经成为我们生活中不可缺少的必需品,各种手机应用软件的层出不穷,使得智能手机占据了互联网的半壁江山,似乎手机无所不能了,平时,很多人觉得一手机在手便可以仗剑走天涯,但当我们走进职场,你就会发现,对于办公而言,手机还是有很大的局限性,掌握电脑知识,熟悉电脑基本操作是胜任工作的必备技能。真是“书到用时方恨少”。今天开始,涛哥就带你走进电脑的世界,让你从电脑小白跃升为办公自动化高手。那么对于一…

    2022年6月6日
    39
  • 思科模拟器之网络访问控制[通俗易懂]

    思科模拟器之网络访问控制[通俗易懂]1.标准访问控制管的过

    2022年7月23日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号