2009-05-01 1 views
1

나는이 오류를 받고 있어요 데이터베이스에 몇 가지 항목을 추가하려고 할 때 :ASP.NET MVC : (ADO.NET 엔터티 데이터 모델에) SaveChanges를에 의해 실행 쿼리를 보는 방법

UpdateException was unhandled by user code
An error occurred while updating the entries. See the InnerException for details.

InnerException에는 다음이 포함됩니다.

내가 추가하려고하는 객체에는 아무런 이상하지 않습니다. 필요한 모든 값이 채워집니다.
문제를 일으키는 쿼리를 보는 방법이 있습니까? 필요한 경우

방법의 코드

:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult LaadVerrichtingenIn() { 
     int[] intArray = Array.ConvertAll<String, int>(Request.Form["selectedObjects"].Split(','), new Converter<String, int>(Convert.ToInt32)); 
     List<Verrichting> gekozenVerrichtingen = new List<Verrichting>(); 

     foreach(int i in intArray){ 
      base._entities.AddToVerrichtingSet(((Dictionary<int, Verrichting>)Session["ingelezenVerrichtingen"])[i]); 
      gekozenVerrichtingen.Add(((Dictionary<int, Verrichting>)Session["ingelezenVerrichtingen"])[i]); 
     } 
     Session["ingelezenVerrichtingen"] = null; 
     base._entities.SaveChanges(); //Exception occurs here 

     return View("IngeladenVerrichtingen"); 
    } 

base._entities은 ADO.NET 엔터티 데이터 모델이다.

감사

답변

1

내가 엔티티 프레임 워크와 함께이 작업을 수행 할 수있는 '깔끔한'방법이 있는지 확실하지 않습니다,하지만 당신은 SQL Server를 사용하는 경우 다음 나는 일반적되는 쿼리를 읽을 SQL Server Profiler을 사용하십시오 서버에 대해 실행됩니다. 다른 데이터베이스를 사용하는 경우에는 동등한 것이있을 수 있습니다. 어떤 경우 에든 알려 주시면 도움이 될 것입니다.

MySQL 5.0.37 이상을 사용하는 경우 새 query profiler 기능이 있습니다. 이것은 쿼리를 전송할 수 있어야합니다.

+0

답을 주셔서 감사하지만 불행히도 나는 SQL 서버를 사용하지 않는 :

BTW, 나는 다음 코드 줄이 문제를 해결 작동하는 것을 발견했다. MySQL 서버를 사용하고 있습니다. 쿼리 로그에 어떻게 액세스 할 수 있는지 살펴 보겠습니다. –

+0

프로파일 링하려는 세션에서 프로파일 링을 활성화하라는 명령을 내야하는 것처럼 보일지라도 MySQL의 SQL 프로파일 러에 대한 링크로 응답을 업데이트 했으므로 EF를 수행해야 할 수도 있습니다 수동 쿼리로 다른 방법에 대해서는 http://stackoverflow.com/questions/20263/is-there-a-profiler-equivalent-for-mysql을 참조하십시오. – Whisk

0

SQL Server를 사용하는 경우 SQL Server 프로파일 러가 정상적으로 작동합니다. Entity Framework 내에서 ToTraceString 메서드를 사용할 수 있습니다.

+0

내 코드에서 어떻게 사용할 수 있는지 알지 못합니다. 이 예제는 자신이 작성한 쿼리에만이 예제를 사용하는 방법을 보여줍니다. 저는 전체 .NET Framework에서 초보자이므로 뭔가를 간과하고 있습니다. 엔티티 변수에서 해당 메서드를 사용하고 quer (y)를 추출하는 방법에 대한 예제를 제공 할 수 있습니까? 처형 될거야? –

+0

네 말이 맞아. 그것은 단지 선택을위한 것이지 삽입/갱신/삭제를위한 것이 아닙니다. –

0

Entity Framework 및 MySQL을 사용하여 데이터를 삽입하는 동안 동일한 문제가 발생했습니다. 내 직감은 값을 사용하고 있기 때문에 소수점 구분 기호 ","는 필드 구분 기호로 잘못 해석됩니다. 나는 Connector 버전 6.1.0으로 업그레이드했으나 여전히 운이 없다. 어쩌면 이것은 또한 당신의 경우에 진행될 것입니다.

버그 보고서 this을 확인하십시오.

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");