自动判断新增或者修改并且存入数据库
2017-06-21 本文已影响137人
垃圾简书_吃枣药丸
/// <summary>
/// 自动判断新增或者修改并且存入数据库
/// </summary>
/// <param name="id">新闻ID</param>
/// <param name="news_news">新闻实体</param>
/// <returns>保存结果</returns>
[ResponseType(typeof(void))]
[HttpPost]
public IHttpActionResult PutNews_news(Guid id, News_news news_news)
{
//重点AsNoTracking(),反回的实体不会在DBContext中进行缓存
News_news Nn = db.Set<News_news>().AsNoTracking().FirstOrDefault(u => u.NewsID == id);
//如果该ID在数据库没有数据的话则进行新增操作
if (Nn == null)
{
db.News_news.Add(news_news);
db.SaveChanges();
return Ok();
}
//如果该ID在数据库有数据的话则进行保存操作
else
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != news_news.NewsID)
{
return BadRequest();
}
db.Entry(news_news).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!News_newsExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
}