博客园现代化建设——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的类,然后就可以随时随地使用。

试验结论:

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • jar包如何读取jar包内的applicationContext.xml[通俗易懂]

    jar包如何读取jar包内的applicationContext.xml[通俗易懂]jar包如何读取jar包内的applicationContext.xml?可以用FileSystemXmlApplicationContext。

  • idea全文搜索快捷键_idea搜索方法快捷键

    idea全文搜索快捷键_idea搜索方法快捷键1、Ctrl+N按名字搜索类相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且如果能匹配的自己写的类,优先匹配自己写的类,甚至不是自己写的类也能搜索。2、Ctrl+Shift+N按文件名搜索文件同搜索类类似,只不过可以匹配所有类型的文件了。3、Ctrl+H查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆。4、Ctrl+Alt+B查看

  • mysql手机号段地区库_最新全国手机号段归属地数据库下载(mysql+xlsx+txt格式)46万条…「建议收藏」

    mysql手机号段地区库_最新全国手机号段归属地数据库下载(mysql+xlsx+txt格式)46万条…「建议收藏」在做网站程序时,经常用到校验用户输入的手机号归属地或所属移动,电信,联通等服务商,本手机号码段归属地数据库包括支持可查省份城市运营商邮编区号。而且提供.mysql,excel,txt三种数据格式数据库,2020年11月份最新的包括46万条记录集,可方便为实现手机号码段归属地查询提供强大后台数据库支持。三大运营商最新号段移动号段:134135136137138139147148…

  • 互联网金融风控模型大全

    互联网金融风控模型大全一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对接第三方征信公司芝麻信用分,通过用户信用历史、行为偏好、履约能力、身份特质、人脉关系五个维度对海量数据行综合的处理评估,同时也给予阿里电商交易…

  • CCriticalSection与CSingleLock

    CCriticalSection与CSingleLockCCriticalSectionAnobjectofclassCCriticalSectionrepresentsa“criticalsection”—asynchronizationobjectthatallowsonethreadatatimetoaccessaresourceorsectionofcode.Criticalse

  • IIS防盗链:ISAPI Rewrite图片防盗链规则写法

    IIS防盗链:ISAPI Rewrite图片防盗链规则写法以下ISAPIRewrite已经在我的服务器上正常运作。经测试四种情况正常,即站内链接正常,白名单里的链接正常,盗链者链接屏蔽,搜索引擎链接正常。详细如下;一、完全屏蔽所有盗链来源的写法(如已有其它规则,则置于已有规则的上面)代码:RewriteCondHost:(.+)RewriteCondReferer:(?!http://\1.*

发表回复

您的电子邮箱地址不会被公开。

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