Entity Framework 4.1/4.3 之二(前辈Entity Framework4.0)

原文地址:http://www.cnblogs.com/mbailing/archive/2012/06/15/2551004.html

 

大家好,上个星期太忙了,忙着做定价子系统,没有时间来写Entity Framework 4.1 之二文章,以至于之前的思路突然间断了。刚才泡了杯tea细细的想了想,决定从前辈讲起。接下来我来讲讲Entity Framework 4.0的实例,然后慢慢过度到Entity Framework 4.1的实例。这样对比较强些。

      寒暄过后,我们开工。

      一,先建立解决方法 (名称:EFProject)

            我习惯建立控制台应用程序。然后建立好多层。有数据层,接口层,业务层,Model层,Helper层,表示层等等。今天为了讲解方便,我直接就调用数据层了。

            1、数据层开建 (先建 Entity Data Model (EDM),在之一里有介绍,它是数据模型与数据库中表的因映射)

                 右击你要存放EDM的文件(我的文件夹叫DBEntity),添加 -> 新建项 ,选择ADO.NET 实体数据模型,命名为EFEntity,点击确定,欧了,EDM建立完毕。

                 切记要命名啊,命我为EFEntity,然点击“添加”,会出现如下图的“实体数据模型向导”:

                    点击下一步在新出现的页面中,点击“新建连接按钮”:会出现 连接属性 设置窗口,在这里将设置EDM映射的数据库。

                        点击确定后,出现实体数据模型向导,如下图:

                          记得在“将App.Config 中的实体连接设置另存为(S)” 下的文本框内也改为"EFEntity"。其实际的做用是在App.config中会增加一条以EFEntity命名的数据库连接字符串。点击 “完成”,如出下图。

                              

                              选好要映射的表,这里要重点强调一下" 型命名空间(M):"  可以到在图中我填的是EFEntity,这样是不对的,因为EDM的名称已经叫做EFEntty了,所以相对应该的映射模型的命名空间就不能再叫EFEntity,否则会出现命名空间冲突。这里我们改成EFModel。点击完成,我们的EDM模型就真正的完成了。是不是很简单。别光看,动手行动起来吧。

                      

                       等等,让我们来看看生成的EDM长什么样吧,双击EFEntity.edmx,会进入到模型浏览器中。如下图所示:

                         

                    这里有 TestEntity和TestEntitySchool 两个模型,分别是对数据库中TestEntity和TestEntity

               2、好了,有了EDM了,我们是时候操作它来对数据库做增删改查了。动手

View Code
 1 public List<TestEntity> GetTestEntity()
 2         {
 3             using (EFEntity db = new EFEntity())
 4             {
 5             
 6                 var query = from m in db.TestEntity
 7                             select m;
 8 
 9                 if (query != null)
10                     return query.ToList();
11                 else
12                     return null;
13             }
14         }

            这个方法是从TestEntity 表中获取所有的数据,EFEntity 就是我们之前定义的edm,TestEntity就是对数据库TestEntity的映射。

            我们没有专门建立一个Model来做为TestEntity载体,而是直接用模型TestEntity本身来做为我们的载体,这样做有好处也有坏处,如果项目工期短的话,功能本身非常单一并且相对简单的话,不妨可以考虑这么做,比如,提供学校列表,老师列表等等单一功能的情况下较好,如果设及到多表关联的话,这样做非常不好。 

            这种做法没有实现数据与展示分离,而且扩展起来不方便。所以常用的做法是在新建一上Model模型,比如我会新建一个TestEntityM来做为TestEntity的表一。当然命名可以自己去命名。

             大家先别顾忌这种上面说的,先动手练习一下。示列中的代码显示了“查的功能”,我抛砖引玉一下,提代以下几行代码,大家试着根据这几行代码来写写“新增”和“编辑的”功能。至于输出,你可以通过控制台来Console.WriteLine方式输出,也可以通过网页的行式显示。

             提示代码如下:

               (1)

View Code
 1 public int EditEntity(TestEntity tsEntity)
 2         {
 3             int result = 0;
 4             using (EFEntity db = new EFEntity())
 5             {
 6                 var query = (from m in db.TestEntity
 7                              where m.email == tsEntity.email
 8                              select m).FirstOrDefault();
 9 
10                 if (query == null)
11                 {
12                     //这里是新增
13                     query = new TestEntity();
14                     //
15                     //  这里你写你的代码
16                     //
17                     db.AddToTestEntity(query);
18                     result = db.SaveChanges();
19                 }
20                 else
21                 {
22                     //好了,你来写编辑
23                 }
24             }
25 
26             return result;
27         }

           

             也不知道您有没有去练习。实践了的朋友们,留个言吧。

             说实话,写博客真不是件容易的事,写系列博客更不是件容易的事。坚持,得坚持啊。

             好了,就写到这里,我会对自己写的博客不断的更新,以便大家更容易理解和阅读。今天就写到这里了,累了。我是jerry百灵,文章中有什么不对的地方,不吝指教。

             补充:本文讲了EF4.1的前辈,也就是EF4.0版,它是伴随着.Net Framework 3.5  出现的。之所以我们要采用ORM方式来编程,是为了更好的将注意力集中在编程上,而不用分散到数据库上。当然早期的EF,也就是EF4.0 之前,我们还需要先设计数据库,设计表,但是在EF4.1 里,推出一Code First (即代码先行),我们可以先构建对象及对象间关系。这里的对象你把它理解成数据库中的表这样更好理解些,事实上它也却实是对表的映射。把精力集中在业务解决上,这样不是更好吗?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值