시스템을 실행하면서. 사용자가 방문 할 때마다 : http://localhost:54619/People/Index 나는 모든 날짜를 데이터베이스에서 삭제하고 새 데이터를 추가하고자합니다.C에서 MVC5의 System.Data.Entity에서 모든 행을 삭제합니다.
그러나 나는 그것을 해결할 방법을 찾을 수 없습니다.
레코드가 Json 파일에서 읽히고 데이터베이스에 추가됩니다.
// GET: People
public ActionResult Index()
{
if (db.People.Count() > 0)
{
int NumRows = db.People.Count();
for (int i = 0; i < NumRows; i++)
{
Person person = db.People.Find(i+1);
db.People.Remove(person);
db.SaveChanges();
}
string Json = System.IO.File.ReadAllText(@"C:\Users\Alex\Desktop\Output.json");
JavaScriptSerializer ser = new JavaScriptSerializer();
var personlist = ser.Deserialize<List<Person>>(Json);
db.People.AddRange(personlist);
db.SaveChanges();
//return RedirectToAction("Index");
return View(db.People.ToList());
}
else
{
string Json = System.IO.File.ReadAllText(@"C:\Users\Alex\Desktop\Output.json");
JavaScriptSerializer ser = new JavaScriptSerializer();
var personlist = ser.Deserialize<List<Person>>(Json);
db.People.AddRange(personlist);
db.SaveChanges();
return View(db.People.ToList());
}
}
db.People.Find (...)는 기본 키를 검색합니다. –
매번 데이터베이스를 대체하기 위해 파일을 읽는다면 왜 데이터베이스를 사용하지 않아도됩니까? 그냥 파일 내용을 제공하십시오 ... "파일에서 읽음"이 "다른 방식으로 데이터베이스 새로 고치기"에서 자리 표시 자일 수 있음을 알지만, 콜렉션에 대한 요청을 얻으려면 아직 독자적으로 보이지는 않습니다. 컬렉션을 데이터베이스에 저장합니다. –
루프 내에서 SaveChanges()를 수행하지 마십시오. 성능면에서 과도합니다. 대신 모든 삭제 작업을 만들고 루프 외부에서 SaveChanges를 호출하십시오. – Oscar