标签:readonly state 游离 bsp context work try 简单的 osi
一、实体状态
EntityState枚举定义了实体的5种状态,包括:
实例:将新实体添加到context
首先注入DbContext,
private readonly DbContext _dbContext;
public DSSuperRepository(DbContext dbContext)
{
this._dbContext = dbContext;
}
2. 将实体添加到context的另一种方法,将实体状态更改为Added
这里还是使用上面已经注入的DbContex对象,
var book = new Book{Name = ".NET Book"};
_dbContext.Entry(book).State = EntityState.Added;
_dbContext.SaveChanges();
3. 实现实体插入或修改操作
这里还是使用上面已经注入的DbContex对象,
var book = new Book{bookId = 1;Name = ".NET Book"};
_dbContext.Entry(book).State = book.bookId == 0 ? EntityState.Added:EntityState.Modified;
_dbContext.SaveChanges();
通过检查实体主键是否有值,主键没有值的情况下,将实体状态改为Added;主键有值的情况下,将实体状态改为Modified。
这个简单的例子只是简单的诠释一个添加或修改的方法该如何实现。
如果有人非得杠精的说,自己拿一个新的实体,然后给实体的主键附上值(原本的意思是要添加实体的),这里在处理的时候就会将实体的状态变为修改,最终操作就变成了修改操作,上面的例子完全不符合现实情况。那我只能说 :I 服了 YOU。
这里重申一下,这只是一个实体插入或修改方法实现的思路,具体实现的时候要动动大脑做些调整。
未完待续……
标签:readonly state 游离 bsp context work try 简单的 osi
原文地址:https://www.cnblogs.com/shendaxian/p/9444471.html