Entity Framework 使用
1.EF中Include方法的使用
使用Include方法,告诉EF连接查询哪个外键属性,生成Inner join连接
//必须引用using System.Data.Entity;才能用Include
IQueryable<UsersAddress> addrs = db.UserAddresses.Include(u=>u.User);
//IQueryable<UsersAddress> addrs = db.UserAddresses.Include("User");
foreach(UsersAddress add in address)
{
Console.WriteLine(add.udAddress+":userName="+add.User.uName);
}
2.EF中修改对象,不需要先查询,然后修改
User user = new User(){ uId=,uName = "aa"};
//将对象加入EF容器中并获取当前实体对象的状态管理对象
DbEntityEntry<User> entry = db.Entry<User>(user);
entry.State = System.Data.EntityState.Unchanged;
//设置该对象的uName属性为修改状态
//必须引用using System.Data.Entity;才能用Property
entry.Property(u=>u.uName).IsModified = true;
//entry.Property("uName").IsModified = true;
db.SaveChanges();
3.EF中删除操作
User user = new User(){ uId=};
db.Users.Attach(user);
db.Users.Remove(user);
db.SaveChanges();
4.EF执行存储过程
在 Sql Server 2008 中创建一个简单的存储过程,如下:
CREATE PROCEDURE [dbo].[P_GetArticleByID]
@ID int
AS
BEGIN
SELECT ID,Title FROM Articles
WHERE ID=@ID;
END
查询存储过程在 Controller 中的写法:
BlogContext db = new BlogContext();
SqlParameter[] parms = new SqlParameter[];
parms[] = new SqlParameter("@ID", );
var result = db.Articles.SqlQuery("exec P_GetArticleByID @ID", parms);
return View(result);
可见,我们通过执行 Sql 语句的方法来使用存储过程.增、删、改方法:
int result = db.Database.ExecuteSqlCommand("exec P_DeleteArticleByID @ID", parms);
5.EF中查询一对多的数据注意
SalesCoupon s = db.SalesCoupon.FirstOrDefault();
int i = s.UserCoupon.Where(u => u.IsUse == true).Count();//这里查询的时候会将s相关的UserCoupon全部加载到内存中然后在内存中进行筛选
ICollection<UserCoupon> userCoupons = s.UserCoupon;//此时就会将s相关的UserCoupon全部加载到内存中
所以当使用一对一的时候可以这样使用,一对多的时候不能这么使用
Entity Framework 使用的更多相关文章
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- Entity Framework Core 1.1 升级通告
原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 来,给Entity Framework热热身
先来看一下Entity Framework缓慢的初始化速度给我们更新程序带来的一种痛苦. 我们手动更新程序时通常的操作步骤如下: 1)把Web服务器从负载均衡中摘下来 2)更新程序 3)预热(发出一个 ...
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- Entity Framework教程(第二版)
源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...
- Entity Framework 6 Recipes 2nd Edition 译 -> 目录 -持续更新
因为看了<Entity Framework 6 Recipes 2nd Edition>这本书前面8章的翻译,感谢china_fucan. 从第九章开始,我是边看边译的,没有通读,加之英语 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航
ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...
随机推荐
- Java基础之理解Annotation(与@有关,即是注释)
Java基础之理解Annotation 一.概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata) ...
- WINDOWS之入侵痕迹清理总结
Windows的日志文件通常有应用程序日志,安全日志.系统日志.DNS服务器日志.FTP日志.WWW日志等等. 应用程序日志文件:%systemroot%\system32\config\AppEve ...
- Jquery 表单操作
文本框,文本区域: 获取值: 1.$("#txt").attr("value"); 2. $("txt").val(); 单选按钮: 获取值 ...
- Radius 远程用户拨号认证系统
RADIUS 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . RADIUS:Remote Authentication Dial In User Service,远程用户拨号认证系 ...
- MapReduce使用JobControl管理实例
import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.fs.Path; impo ...
- NOIP2011 聪明的质监员
描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: 1 .给定m 个区间[Li ...
- $key 的用法
<?php $attr=array("a","b","c","d"); //$key,默认是主键值,$value, ...
- hiho一下 第九十七周 数论六·模线性方程组
题目1 : 数论六·模线性方程组 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho:今天我听到一个挺有意思的故事! 小Hi:什么故事啊? 小Ho:说秦末,刘邦的将军 ...
- (int),Int32.Parse() 和 Convert.toInt32() 的区别
在 C# 中,(int),Int32.Parse() 和 Convert.toInt32() 三种方法有何区别? int 关键字表示一种整型,是32位的,它的 .NET Framework 类型为 S ...
- nested exception is org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 56; cvc-complex-type.2.4.c通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明
严重: Exception sending context initialized event to listener instance of class org.springframework.we ...