码迷,mamicode.com
首页 > 其他好文 > 详细

EFDemo

时间:2016-08-16 00:39:23      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

我们创建一个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当用到的时候再去查数据。

 

EFDemo

标签:

原文地址:http://www.cnblogs.com/GRLwoniu/p/5774693.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!