博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF框架step by step(1)—Database-First
阅读量:6201 次
发布时间:2019-06-21

本文共 2500 字,大约阅读时间需要 8 分钟。

ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,现已经包含在 Visual Studio 2008 Service Pack 1 以及 .NET Framework 3.5 Service Pack 1 中发布。目前最新版本为4.1,可以。

  ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。在最新4.1版本中,增加了 DbContext API及Codefirst,DbContext API是基于ObjectContext和其他一些类型抽象出的一个简单的API,并进行了优化。 Code First是基于Entity Framework的新的开发模式,原先只有Database First和Model First两种。Code First先用C#/VB.NET的类定义模型,然后映射到现有的数据库或者产生新的数据库结构。Code First同样支持通过Data Annotations或fluent API进行定制化配置。过多的内容就不多说了,框架图下:

  简单介绍就到这里,先来构建一个简单的例子,来感受一下这个框架。这个例子采用简单的Database-First方法.

  首先在建一个示例数据库BlogDB,然后创建两张表如下图示:

     

  随便录入一些测试数据。

  第二步:打开VS2010,新建控制台应用程序EFSample

  第三步:右键工程目录,在弹出菜单点击添加新项,添加ADO.Net Entity Data Model,并命名为:Blog.edmx,如下图示:

  

  在弹出的新窗口,选择Generate from database,下一步

  

  选择数据连接,并将数据库连接字符串保存在程序中,继续下一步

  

  选择要添加的表,完成,这时就添加好了这个Blog.edmx,这个文件是从数据库自动生成的模型文件,基于xml格式,包含概念模型、存储模型以及这两个模型之间的映射。如下图示:

  

  这是最后生成的EDM。

  

  最后,打开Program.cs 键入代码,如下示。

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace EFSample {
class Program {
static void Main(string[] args) {
IList
blogUsers = TestEF.GetAllBlogUsers(); ///遍历所有查询结果 foreach (var blogUser in blogUsers) {
Console.WriteLine(blogUser); ///获取外键对象的内容 foreach (var post in blogUser.Posts) {
Console.WriteLine("\t 随笔标题:{0}",post.PostTitle); } } } } public static class TestEF {
public static IList
GetAllBlogUsers() {
///BlogDBEntities是继承于ObjectContext类,自动生成 ///可以打开Blog.Desgner.cs文件找到 ///原型: public partial class BlogDBEntities : ObjectContext ///可以理解为 他代表了当前数据库环境对象 ///同时,在Blog.Desgner.cs里还可以找到两个实体BlogUser及Post BlogDBEntities blogDB = new BlogDBEntities(); ///采用Linq语法读取数据 IList
blogUsers = blogDB.BlogUsers.ToList
(); return blogUsers; } } public partial class BlogUser {
public override string ToString() {
return string.Format("编号:{0} 姓名:{1}", this.BlogID, this.BlogName); } } }

  下面可以运行,测试,效果如图:

转载地址:http://pbtca.baihongyu.com/

你可能感兴趣的文章
详解 Discuz 的 PHP经典加密解密函数 authcode
查看>>
Oracle如何删除表中重复记录
查看>>
nginx 是如何处理访问请求的
查看>>
wget参数用法详解
查看>>
使用curl命令查看访问url的时间
查看>>
python添加环境变量
查看>>
DP-01背包 (题)
查看>>
WinForm中跨线程操作控件
查看>>
CODING 敏捷实践完全指南
查看>>
unittest测试框架和测试报告的输出实例(一)
查看>>
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
12C -- 配置Application Continuity
查看>>
Flymeos插桩适配教程
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>