EF框架—Code-First
来源:互联网 发布:sql server 实训报告 编辑:程序博客网 时间:2024/05/29 14:29
CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法。
本文采用的示例仍然是前两篇采用的博客用户的示例。故不在此对业务进行描述。
首先新建一个C#控制台应用程序,并命名为EFCodeFirstSample。
利用Nuget为该项目添加引用Entity Framework4.1的引用。
PM> Install-Package EntityFramework
当然,你也可以用常规的方式,先下载EF4.1安装后,在进行添加。
同时代码中引用命名空间
using System.Data.Entity;
第二步:为项目添加2个实体对象,仍然采用前面所描述过的博客用户及随笔类,代码如下示:
using System.Data.Entity;第二步:为项目添加2个实体对象,仍然采用前面所描述过的博客用户及随笔类,代码如下示: public partial class BlogUser { /// <summary> /// 默认情况下属性被命名为ID、id或者[ClassName]Id,将映射为数据表中的主键 /// 如果没有类似的命名,并且也未显示指明主键,则生成失败,引发异常 /// </summary> public int BlogUserId { get; set; } public string BlogName { get; set; } /// <summary> /// 定义博客用户的随笔列表 /// virtual表示该列表为延迟加载 /// </summary> public virtual ICollection<Post> Posts { get; set; } } public partial class Post { public int PostId { get; set; } public string PostTitle { get; set; } public int BlogUserId { get; set; } /// <summary> /// 延迟加载博客用户 /// </summary> public virtual BlogUser BlogUser { get; set; } }第三步:定义DbContext public class BlogDbContext : DbContext { public IDbSet<BlogUser> BlogUsers { get; set; } public IDbSet<Post> Posts { get; set; } }第四步:编写测试代码 using (var db = new BlogDbContext()) { //向数据库添加记录 var blogUser = new BlogUser() { BlogUserId = 1, BlogName = "燕赤霞" }; db.BlogUsers.Add(blogUser); var post = new Post() { PostId = 1, PostTitle = "一切皆有可能--我与小倩不得不说的事", BlogUserId = 1 }; db.Posts.Add(post); //保存记录,返回受影响的行数 int recordsAffected = db.SaveChanges(); Console.WriteLine("追加{0}记录成功", recordsAffected); }好了,写到这里可以运行测试了,运行结果如下:你可以打开数据库管理器,可以找到EFCodeFirstSample.BlogDbContext 数据库,他包含BlogUsers表和Posts表,并且建立了主外键关系完整代码如下:完整代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.Entity;using System.ComponentModel.DataAnnotations;namespace CodeFirstSample{ class Program { static void Main(string[] args) { using (var db = new BlogDbContext()) { //向数据库添加记录 var blogUser = new BlogUser() { BlogUserId = 1, BlogName = "燕赤霞" }; db.BlogUsers.Add(blogUser); var post = new Post() { PostId = 1, PostTitle = "一切皆有可能--我与小倩不得不说的事", BlogUserId = 1 }; db.Posts.Add(post); //保存记录,返回受影响的行数 int recordsAffected = db.SaveChanges(); Console.WriteLine("追加{0}记录成功", recordsAffected); } } } public partial class BlogUser { /// <summary> /// 默认情况下属性被命名为ID、id或者[ClassName]Id,将映射为数据表中的主键 /// 如果没有类似的命名,并且也未显示指明主键,则生成失败,引发异常 /// </summary> public int BlogUserId { get; set; } public string BlogName { get; set; } /// <summary> /// 定义博客用户的随笔列表 /// virtual表示该列表为延迟加载 /// </summary> public virtual ICollection<Post> Posts { get; set; } } public partial class Post { public int PostId { get; set; } public string PostTitle { get; set; } public int BlogUserId { get; set; } /// <summary> /// 延迟加载博客用户 /// </summary> public virtual BlogUser BlogUser { get; set; } } public class BlogDbContext : DbContext { public IDbSet<BlogUser> BlogUsers { get; set; } public IDbSet<Post> Posts { get; set; } } }
0 0
- EF框架—Code-First
- EF框架step by step(3)—Code-First
- EF框架 Code First Fluent API
- ABP框架---EF code First 数据迁移
- EF框架—Database-First
- EF框架—Model-First
- ef-->code first-->Migrations
- ef code first例子
- EF Code first
- EF(code First)
- EF Code First 常用命令
- EF code first attribute
- EF Code First
- EF code First
- EF 4.1 Code First Walkthrough
- EF Code First 初体验
- EF Code First 初体验
- EF Code-First中的事务
- 14.IntelliJ IDEA 项目相关的几个重要概念介绍 - IntelliJ IDEA 使用教程
- poj3041 最小点覆盖即最大匹配(匈牙利算法)(模板)
- 15.Hello World 项目创建与项目配置文件介绍 - IntelliJ IDEA 使用教程
- Android开发使用的常见第三方框架汇总
- android-使用AsyncTask做下载进度条
- EF框架—Code-First
- windows程序消息处理流程
- iOS开发中nil、Nil、NULL和[NSNull null]的区别
- 直接选择排序
- 第九周-不定工资数
- 16.版本控制的使用 - IntelliJ IDEA 使用教程
- 关于javaWeb的Filter过滤器
- C语言中如何避免野指针
- python2 type()函数 isinstance()函数