EFDemo

我们创建一个EF对象,项目与数据库打交道的时候,调用EF,而不是Ado.net ,使用EF来创建数据库,再更新到数据库中。过程如下:

1 在项目中点击“添加”--》“选择新建项”--》“数据”-->Ado.Net数据实体模型--》选择“空数据模型”。

2 创建号之后就要创建数据表,创建过程如下图所示:

多张数据表之间的关系可以通过“关系”来建立联系。

新增数据:

///生命一个上下文
DataModel1Container dbcontext = new DataModel1Container();

////创建用户,定义两个订单
UserInfo userinfo = new UserInfo();
userinfo.UserName = "高荣磊";
//添加一个新用户
dbcontext.UserInfo.Add(userinfo);

////创建两个订单
OrderInfo order1 = new OrderInfo();
order1.Content = "Shit1";
dbcontext.OrderInfo.Add(order1);

OrderInfo order2 = new OrderInfo();
order2.Content = "Shit2";
dbcontext.OrderInfo.Add(order2);

////关联三个实体
////1 通过UserInfo添加订单
userinfo.OrderInfo.Add(order1);
userinfo.OrderInfo.Add(order2);

//////2 通过OrderInfo指定用户是谁
order1.UserInfo = userinfo;
order2.UserInfo = userinfo;

//保存所有改变

dbcontext.SaveChanges();
#endregion

修改数据:

#region 修改数据
UserInfo Modify = new UserInfo();
Modify.ID = 9;
Modify.UserName = "高山";
//修改整行数据
// dbcontext.Entry(Modify).State = EntityState.Modified;
dbcontext.UserInfo.Attach(Modify);

//修改一行数据的某个属性
dbcontext.Entry(Modify).Property(u => u.UserName).IsModified = true;
#endregion

#region 查询数据
var temp = from u in dbcontext.UserInfo
where u.ID > 1 //&& u.UserName.Contains(‘G‘)
//&& u.UserName.StartsWith("G")
select u;
Console.WriteLine(temp.Count());
foreach(var u in temp )
{
Console.WriteLine(u.ID+" "+u.UserName);
}
#endregion

EF延迟加载的两种方法

1 通过IQueryable来实现数据的延迟加载

IQueryable<UserInfo> temp = from u in dbcontext.UserInfo
where u.ID > 1 //&& u.UserName.Contains(‘G‘)
//&& u.UserName.StartsWith("G")
select u;
Console.WriteLine(temp.Count());
foreach(var u in temp )
{
Console.WriteLine(u.ID+" "+u.UserName);
}

2 通过数据表之间的关联,也就是利用导航属性

var temp1 = from u in dbcontext.UserInfo
select u;
foreach(var userinfo in temp1)
{
foreach (var orderinfo in userinfo.OrderInfo)
{
Console.WriteLine(userinfo.UserName+" "+" "+orderinfo.ID+" "+orderinfo.Content);
}
}

其中userinfo.OrderInfo当用到的时候再去查数据。

时间: 2024-10-29 19:12:02

EFDemo的相关文章

[EF] 如何在 Entity Framework 中以手动方式设定 Code First 的 Migration 作业

Entity Framework (简称 EF) 发展到现在, 版本已经进入 6.1.0, 距离我写的「在 VS2013 以 Code First 方式建立 EF 资料库」这篇文章已有半年的时间.如果你和我一样从那时候开始使用 EF Code First, 那么你对 EF 应该已经有了基本的了解.依我个人的使用经验, EF 虽然好用, 但是如果一直使用 AutomaticMigrations 的方式维护你的资料库, 也许会遇到一些麻烦.因为在正常作业环境下, 资料库的格式不可能永远不变; 当我们

EntityFramework初步学习

刚开始接触EntityFramework (6.1.1),首先利用它对数据库进行简单的操作. 1.创建一个控制台应用程序,创建完成后添加EntityFramework程序集的引用,添加EntityFramework的引用可以通过NuGet VS2013  工具->库程序包管理器->程序包管理器控制平台->输入 Install-Package EntityFramework 此时所需的EntityFramework程序集已添加到项目中. 2.建立一个员工Model public class

EF Code-First 学习之旅 从已存在的数据库进行Code First

namespace EFDemo { using System; using System.Data.Entity; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; public partial class SchoolContext : DbContext { public SchoolContext() : base("name=SchoolContext2") { } public vi

asp.net EF学习系列----深入理解查询延迟加载技术

ado.net EF是微软的一个ORM框架,使用过EF的同学都知道EF有一个延迟加载的技术. 如果你是一个老鸟,你可能了解一些,如果下面的学习过程中哪些方面讲解的不对,欢迎批评指教.如果一个菜鸟,那我们就一起开始今天的学习. 首先,提出以下几个问题. 何为延迟加载呢? 我们该如何使用呢? 我们为什么要使用延迟加载技术呢? 延迟加载技术有什么优.缺点呢? 好,带着上面的问题我们开始今天的学习. 1.何为延迟加载 EF的延迟加载,就是使用Lambda表达式或者Linq 从 EF实体对象中查询数据时,

Filter过滤的2种方式

1.新建一个过滤器,继承ActionFilterAttribute,然后重写 public class DemoFilterAttribute:ActionFilterAttribute { //在Action执行之前执行 public override void OnActionExecuting(ActionExecutingContext filterContext) { filterContext.HttpContext.Response.Write("action之前");

[EF]使用EF简单增删改查

目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6. 实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术.是微软的一个ORM框架. 什么是O/R Mapping 广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换. 狭义上,OR

Entity Framework之Code First开发方式

一.Code First Code First方式只需要代码,不需要Edmx模型.EF通过实体类型结构推断生成SQL并创建数据库中的表.开发人员只需要编写实体类就可以进行EF数据库的开发. Code First 有两种配置数据库映射的方式,一种是使用数据属性DataAnnotation,另外一种是使用Fluent API. DataAnnotation的配置方式需要给实体类和类中的属性加上与数据库映射相关的配置标签.常见配置标签如下: [Key]------主键,[Required]------

EF三种编程方式详细图文教程(C#+EF)之Model First

Model First Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio中我们通过设计对于的数据模型来生成数据库和数据类. 首先创建一个控制台应用程序,右键添加新建项,选择“ADO.NET Entity Data Model”,名称输入EFDemoDB(此名称跟上一个没有任何联系,只是重名而已): 在模型设计视图中,添加新实体:(空白处右键) 添

EF三种编程方式详细图文教程(C#+EF)

开始学习EF,从网上找了好多,都不是自己想要的,于是边学边把自己学习的过程写下来,以供参考. 操作环境:VS2013+SQLServer2012 Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下EF三种编程方式. 开始介绍这三种EF操作方式之前,首先在Visual Studio 2013中建立一个数据库连接,这里我们以“EFDemo”数据库为例: