EntityFramework 学习 一 DbSet

本文介绍了DBSet类的基本概念及其在实体框架中如何用于创建、更新、删除和查询操作。此外,还详细解释了DBSet中重要的方法,如Add、AsNoTracking、Attach等,并提供了示例代码。

DBSet类表示一个实体的集合,用来创建、更新、删除、查询操作,DBSet<TEntity>是DBSet的泛型版本

你可以使用DbContext获取DBSet的引用,例如dbContext.Students

 

DBSet中的一些重要方法

 

Method NameReturn TypeDescription
AddAdded entity typeAdds the given entity to the context the Added state. When the changes are being saved, the entities in the Added states are inserted into the database. After the changes are saved, the object state changes to Unchanged.

Example: 
dbcontext.Students.Add(studentEntity)
AsNoTracking<Entity>DBQuery<Entity>Returns a new query where the entities returned will not be cached in the DbContext. (Inherited from DbQuery.)

Entities returned as AsNoTracking, will not be tracked by DBContext. This will be significant performance boost for read only entities. 


Example: 
var studentList = dbcontext.Students.AsNoTracking<Student>().ToList<Student>();
Attach(Entity)Entity which was passed as parameterAttaches the given entity to the context in the Unchanged state 

Example: 
dbcontext.Students.Attach(studentEntity);
CreateEntityCreates a new instance of an entity for the type of this set. This instance is not added or attached to the set. The instance returned will be a proxy if the underlying context is configured to create proxies and the entity type meets the requirements for creating a proxy.

Example: 
var newStudentEntity = dbcontext.Students.Create();
Find(int)Entity typeUses the primary key value to attempt to find an entity tracked by the context. If the entity is not in the context then a query will be executed and evaluated against the data in the data source, and null is returned if the entity is not found in the context or in the data source. Note that the Find also returns entities that have been added to the context but have not yet been saved to the database. 

Example: 
Student studEntity = dbcontext.Students.Find(1);
IncludeDBQueryReturns the included non generic LINQ to Entities query against a DbContext. (Inherited from DbQuery)

Example:
var studentList = dbcontext.Students.Include("StudentAddress").ToList<Student>();
var studentList = dbcontext.Students.Include(s => s.StudentAddress).ToList<Student>();
RemoveRemoved entityMarks the given entity as Deleted. When the changes are saved, the entity is deleted from the database. The entity must exist in the context in some other state before this method is called.

Example:
dbcontext.Students.Remove(studentEntity);
SqlQueryDBSqlQueryCreates a raw SQL query that will return entities in this set. By default, the entities returned are tracked by the context; this can be changed by calling AsNoTracking on theDbSqlQuery<TEntity> returned from this method.

Example:
var studentEntity = dbcontext.Students.SqlQuery("select * from student where studentid = 1").FirstOrDefault<Student>();

 

转载于:https://www.cnblogs.com/lanpingwang/p/6617808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值