2010-03-17 3 views
2

두 번째 ASP.NET MVC 프로젝트에서 나는 매우 이상한 문제에 직면하고 있습니다. DataContext 클래스의 SubmitChanges 메서드를 호출해도 데이터 베이스. 첫 번째 프로젝트에서 모든 것이 잘 작동하기 때문에 이상합니다.ASP.NET LINQ to SQL SubmitChanges()가 데이터베이스를 업데이트하지 않습니다.

SQL Server Management Studio에서 만든 원격 데이터베이스를 사용 중입니다. 데이터베이스에 연결되어있는 Visual Studio 2010에서 일부 쿼리를 시도했지만 모두 작동합니다.

어디에서 문제를 숨길 수 있습니까?

DBDataContext DB = new DBDataContext(); 
var myuser = DB.Users.Single(u => u.ID == id); 
myuser.Age = 45; 
DB.SubmitChanges(); 

솔루션

이 당황 : D는 사실 내가 기본 키를 가지고 있지 않았다. 이제 작동합니다!

모두에게 감사드립니다.

+1

일부 코드를 표시해 주실 수 있습니까? – AxelEckenberger

+0

코드 예제가 추가되었습니다. – Alex

+0

원래 나이가 아직 45가 아니라고 확신합니까? 값을 기존 값으로 설정하면 커밋되지 않음 MVC 외부에서 동일한 datacontext를 사용하여 기여 요인을 분리 할 수 ​​있습니다. – TobyEvans

답변

3

표 : KEY :) :

표 삽입 키 !!!!!

+0

오 마이 맙소사! 이것은 당혹 스럽습니다 : D 사실 저는 기본 키가 없었습니다. 고맙습니다! – Alex

+0

어! 이 사람도 나를 잡았다. 테이블에서 잊어 버리는 그런 간단한 일. – Chris

0

아마도 데이터베이스에 제출할 항목이 없을 수 있습니까? SubmitChanges()는 수정되거나 새 데이터 만 제출합니다. 둘 중 하나라도 없으면 아무런 영향을 미치지 않습니다.

Linq에 대해 좀 더 알고 싶거나 Linq in action과 같은 책을 원할 수 있습니다. ScottGu's series on Linq을 읽고 싶을 수도 있습니다.

0

수정중인 엔티티가 DataContext에 연결되지 않았을 가능성이 있습니까? 이렇게하면 사용자가 데이터베이스를 갱신하지 못하게됩니다.

+0

nerdinner 자습서에 설명 된대로 linq to sql 클래스를 만들었습니다. 그들이 연결되어 있는지 확인할 수 있습니까? – Alex

0

연결 문자열을 확인할 것입니다. 연결하고 있다고 생각하는 데이터베이스에 연결하지 않았을 수 있습니다.