EF框架step by step(3)—Code-First
2016-01-19 08:58
337 查看
CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法。
本文采用的示例仍然是前两篇采用的博客用户的示例。故不在此对业务进行描述。
第二步:为项目添加2个实体对象,仍然采用前面所描述过的博客用户及随笔类,代码如下示:
本文采用的示例仍然是前两篇采用的博客用户的示例。故不在此对业务进行描述。
首先新建一个C#控制台应用程序,并命名为EFCodeFirstSample。
利用Nuget为该项目添加引用Entity Framework4.1的引用。
PM> Install-Package EntityFramework
当然,你也可以用常规的方式,先下载EF4.1安装后,在进行添加。
同时代码中引用命名空间
using System.Data.Entity;
第二步:为项目添加2个实体对象,仍然采用前面所描述过的博客用户及随笔类,代码如下示:
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; } } }
相关文章推荐
- WDCP主机管理系统添加自动重启WEB服务的计划任务
- 黑客攻破网站涂鸦特效(强烈建议看看)
- python结合API实现即时天气信息
- 用DOM解析XML
- c语言sizeof用法(32位机)
- EF框架step by step(2)—Model-First
- 爬虫 - 开发网络爬虫应该怎样选择爬虫框架
- 3.5!——阶乘的插值(python)
- 内存占用砍掉20M——谈Android内存优化
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- iOS中的多线程 NSOperation
- 本地算税区别
- 数据结构链表基础
- ASP.NET反射
- EF框架step by step(1)—Database-First
- opencv2.4.9安装编译及调试
- 在windows 8上搭建FTP服务器
- jQuery.noConflict() 函数详解
- SAP BPC全面预算及合并解决方案.pdf 电子版
- c语言函数实参与形参整理