教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

Entity Framework 增删改 文档

来源:网络收集 时间:2026-07-31
导读: 接口:public interface IRepositoryTEntity where TEntity : IEntity { IEnumerableTEntity FindAll(); TEntity FindById(int id); void Add(TEntity entity); void Delete(TEntity entity); void Update(TEntity entity); } protected DbSetTEntity DbSet

接口:public interface IRepository<TEntity>

where TEntity : IEntity

{

IEnumerable<TEntity> FindAll();

TEntity FindById(int id);

void Add(TEntity entity);

void Delete(TEntity entity);

void Update(TEntity entity);

}

protected DbSet<TEntity> DbSet

{

get { return m_dbContext.Set<TEntity>(); }

}

public IEnumerable<TEntity> FindAll()

{

return DbSet;

}

public TEntity FindById(int id)

{

return DbSet.SingleOrDefault(entity => entity.Id == id);

}

public void Add(TEntity entity)

{

DbSet.Add(entity);

m_dbContext.SaveChanges();

}

public void Delete(TEntity entity)

{

DbSet.Remove(entity);

m_dbContext.SaveChanges();

}

var heros = repository.FindAll();

var hero = heros.First(h => h.Id == 1);

var heroNew = new Hero

{

Id = hero.Id,

Name = http://doc.guandang.net,

Race = hero.Race

};

repository.Update(heroNew);

查找:

string city = "London";

using (Entities entities = new Entities())

{

var query = entities(数据库).Customers.Where(r => r.Address.City == city);

foreach (Customers c in query)

Console.WriteLine(http://doc.guandang.netpanyName);

}

dim db As New Entities

dim aObj as 实体类

'添加

aObj.属性=值

db.addobject(aObj)

db.savechanges()

’查

dim aObj as 实体类=(from iObj in db.实体集 where 实体ID=ID select

iObj).first()

'删除

dim aObj as 实体类=(from iObj in db.实体集 where 实体ID=ID select

iObj).first()

db.DeleteObject(aobj)

db.savechanges()

'改

dim aObj as 实体类=(from iObj in db.实体集 where 实体ID=ID select iObj).first()

aObj.属性=值

db.savechanges()

本节,直接写通过代码来学习。这些基本操作都比较简单,与这些基本操作相关的内容在之前的1至6节基本介绍完毕。

增加: 方法1:使用AddToXXX(xxx)方法:实例代码如下:

using (var edm = new NorthwindEntities())

{

Customers c = new Customers { CustomerID = "c#", City = "成都市", Address = "中国四川省", CompanyName = "cnblogs", Country = "中国", Fax = "10086", Phone = "1008611", PostalCode = "610000", Region = "天府广场", ContactName = "风车车.Net" }; edm.AddToCustomers(c);

int result = edm.SaveChanges();

Assert.AreEqual(result, 1);

Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c#");

Console.WriteLine("CustomerId={0},City={1}", addc.CustomerID, addc.City);

}

方法2:使用ObjectContext的AddObject(string entitySetName, object entity)方法。实例代码如下:

using (var edm = new NorthwindEntities()) {

Customers c = new Customers { CustomerID = "c2", City = "成都市2", Address = "中国四川省2", CompanyName = "cnblogs", Country = "中国", Fax = "10086", Phone = "1008611", PostalCode = "610000", Region = "天府广场", ContactName = "风车车.Net" };

edm.AddObject("Customers", c);

int result = edm.SaveChanges();

Assert.AreEqual(result, 1);

Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");

Console.WriteLine("CustomerId={0},City={1}", addc.CustomerID, addc.City);

}

其中,在代码中,需要注意的是:AddObject方法中参数“entitySetName ”就是指对应实体名称,应该是:“Customers”,而不是“NorthwindEntities.Customers”;

更新:

using (var edm = new NorthwindEntities())

{

Customers addc = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");

addc.City = "CD";

addc.ContactName = "cnblogs";

addc.Country = "CN";

int result = edm.SaveChanges();

Assert.AreEqual(result, 1);

Customers updatec = edm.Customers.FirstOrDefault(cc =>

cc.CustomerID == "c2");

Console.WriteLine("CustomerId={0},City={1}", updatec.CustomerID, updatec.City);

}

其中,需要注意的是:不能去更新主键,否则会报“System.InvalidOperationException : 属性“xxx”是对象的键信息的一部分,不能修改。”

删除:

实例代码如下:

using (var edm = new NorthwindEntities()) {

Customers deletec = edm.Customers.FirstOrDefault(cc =>

cc.CustomerID == "c2");

edm.DeleteObject(deletec);

int result = edm.SaveChanges();

Assert.AreEqual(result, 1);

Customers c = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c2");

Assert.AreEqual(c, null);

}

事务:

实例代码如下:

NorthwindEntities edm = null;

http://doc.guandang.netmon.DbTransaction tran = null;

try

{

edm = new NorthwindEntities();

edm.Connection.Open();

tran = edm.Connection.BeginTransaction();

Customers cst = edm.Customers.FirstOrDefault(cc => cc.CustomerID == "c#");

cst.Country = "CN";

cst.City = "CD";

edm.SaveChanges();

http://doc.guandang.netmit();

}

catch (Exception ex)

{

if (tran != null)

tran.Rollback();

throw ex;

}

finally

{

if (edm != null && edm.Connection.State !=

System.Data.ConnectionState.Closed)

edm.Connection.Close();

}

至此,初级篇基本介绍完毕。后面,打算写点,中级篇的东西。

…… 此处隐藏:2038字,全部文档内容请下载后查看。喜欢就下载吧 ……
Entity Framework 增删改 文档.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1415661.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)