EF4.1使用

EF分为三类:

db first:首先建立数据库,然后通过ADO.Net Entity Data Model项目建立.edmx文件,这是一个xml文件主要作用就是映射类和数据表

model first:首先建立.edmx文件,映射类和数据表的关系,然后生成代码

code first:首先写代码,如实体对象,数据关系等,然后根据已有的代码描述,自动创建数据对象

这里主要介绍code first方法:

首先下载http://www.microsoft.com/en-us/download/confirmation.aspx?id=8363 EF 4.1

和EF 4.x DbContext 具体在vs2010->工具->扩展管理器->联机库->搜索EF 4.x DbContext

主要优点:

1.在不使用设计器或者定义一个 XML 映射文件的情况下进行开发。

2.允许编写简单的模型对象POCO (plain old classes),而不需要基类。

3.通过"约定优于配置",使得数据库持久层不需要任何的配置

4.也可以覆盖"约定优于配置",通过流畅的 API 来完全定制持层的映射。

5.添加实体类不需要使用基类和特性等代码

简单的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;

namespace EFDemo
{
class Program
{
static void Main(string[] args)
{
using (var db = new BlogDbContext())
{
var blogUser = new BlogUser() { BlogUserId = 1, BlogName = "e" };
db.BlogUsers.Add(blogUser);
var post = new Post()
{
PostId = 1,
PostTitle = "123",
BlogUserId = 1
};
db.Posts.Add(post);

int recordAffected = db.SaveChanges();
Console.WriteLine("追加{0}记录成功", recordAffected);
}
}
}

public partial class BlogUser
{
public int BlogUserId { get; set; }
public string BlogName { get; set; }

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; }

public virtual BlogUser BlogUser { get; set; }
}

public class BlogDbContext : DbContext
{
public IDbSet<BlogUser> BlogUsers { get; set; }
public IDbSet<Post> Posts { get; set; }
}
}

EF4.1使用

时间: 2024-10-13 15:16:12

EF4.1使用的相关文章

3、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录

最近由于项目赶着上线,一直没时间接着写博客,今天终于空出了时间.声名:我不是专业美工,所以界面问题,希望大家不要拍砖.登录界面如下: 在ASP.NET MVC中,要新增一个功能,我们首先要添加一个控制器,AccountController.cs,添加方法:右键单击Controllers文件夹, /// <summary> /// 登录页面 /// </summary> /// <returns></returns> public ActionResult I

4、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——后台管理界面

这一章节比较简单,我就直接贴代码了,后台管理登陆界面如下: 对应的控制器HomeController.cs,代码如下: using YKT.Model; using YKT.Common; using YKT.BLL; using YKT.Common.HtmlHelpers; using YKT.Common.Functions; using Microsoft.Practices.Unity; using YKT.IBLL; namespace YKT.Controllers { publi

5、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——使用datagrid做报表统计

需要说明一点:数据库访问我使用的是EF框架,但是在报表统计着一块由于使用到了动态表,即根据每一天单独生成了一张数据表,所以不好使用EF进行预先添加,于是我在数据库访问层里面封装了两套数据库访问框架,一个就是EF,一个就是传统的ADO.NET.当设计到使用动态表时,我就调用用ADO.NET进行数据库访问操作了. 先看下View,这里我使用的是jquery easyUI里面的datagrid来做的报表.如下: 单击选中日报: 年报如下: @model YKT.Model.SubCompanyRepo

EF How to use context.Set and context.Entry, which ships with EF4.1 ?

How to use context.Set and context.Entry, which ships with EF4.1 ? Hello, I am trying to implement a generic repository as explained on the following link :- http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-p

mvc4.0添加EF4.0时发生编译时错误

解决此问题是因为MVC4.0默认未添加EF4.0的引用,EF4.0引用的是System.Data.Entity.dll, Version=4.0.0.0, 解决办法: 在web.config文件system.web节点下的compilation节点下assemblies节点下增加 <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

MVC ---- EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEntity(T

EF4.1DbContext使用现成的数据库

在配置文件中使用 <configuration> <connectionStrings> <add name="BlogDB" providerName="System.Data.SqlClient" connectionString="Data Source=.\sqlexpress;Initial Catalog=MyBlogDB;Integrated Security=True"/> </conne

MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化

上篇文章中 我们已经创建了EF4.1基于code first的例子  有了数据库 并初始化了一些数据  今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建详细页 首先 我们先在控制器下 添加详细页的方法 因为这篇文章后面要介绍持久对象声明周期的变化 所以在这里先看下有哪些状态 EF里一共有这五中生命状态类型 其实 看名字我们可以大概猜测出个一二三来~~  游离的 未改变的  新添加的  已删除的 修改的  但是是怎么变化的能 我们在后面的代码中实践与

EF4.0和EF5.0增删改查的写法区别及执行Sql的方法

EF4.0和EF5.0增删改查的写法区别 (原文) public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet<T>().AddObject(entity); //EF5.0的写法 db.Entry<T>(entity).State = EntityState.Added; //下面的写法统一 db.SaveChanges(); return entity; } public bool UpdateEnti