首页 > 其他 > 详细

EFDemo

时间:2016-08-16 00:38:06      阅读:197      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!