/// <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); } }