2011-10-05 3 views
0

다음 예외가 throw됩니다.Linq InsertOnSubmit이 예외를 던지고 있습니다 : 객체 참조가 객체의 인스턴스로 설정되지 않았습니다

코스 InsertOnSubmit에 전달되는 개체는 Linq에 의해 생성되는 Course 유형입니다.

public ActionResult Course(CourseViewModel c) 
{ 
    Course course = (Course) c; //CourseViewModel is derrived from Course 
    SchedulerDataContext db = new SchedulerDataContext(); 
    db.Courses.InsertOnSubmit(course); // <- this is where exception is thrown 
    db.SubmitChanges(); 
} 

그러나, 나는 그들의 대답을 이해하지 못하고, 이미 herehere이에 대한 질문이 있습니다. 추측 컨대 나는 시간 안에 대상을 만들지 않을 것입니다. 어떤 물건과 정확히 무슨 일이 필요합니까?

+0

'코스'를 만드는 방법은 무엇입니까? – BrokenGlass

+0

물론 linq-to-sql 파일 –

+0

에서 코드가 생성되었으므로, 잘하면 내 질문을 명확히한다. –

답변

1

Course 개체를 삽입하기 전에 개체를 만들어야합니다.

Course course = new Course { ... set the properties .. }; 
SchedulerDataContext db = new SchedulerDataContext(); 
db.Courses.InsertOnSubmit(course); 
db.SubmitChanges(); 
+0

내가하고 있었기 때문에 이상했다. Course course = (Course) CourseModelView CourseModelView가 Course 객체를 상속하는 곳. 그래서 코스 객체가 설정되었습니다. –

+0

@ dev.e.loper 데이터 컨텍스트를 제대로 설정하지 않으면 상속이 까다로울 수 있습니다. 그냥 새로운 코스를 만들고 캐스팅을 수행하는 대신 모델의 속성을 모델에 복사해볼 수 있습니까? 그게 당신 문제는 아니지만, 그렇지 않다면 더 많은 코드를 볼 필요가 있습니다. – tvanfosson

+0

코스 오브젝트가 이미 설정되었지만 설명 된대로 설정되지 않았습니다. 내가 설정 한 방법을 설명하는 줄로 내 질문을 업데이트했습니다. 왜 내가 작동하지 않았는 지 말해 줄 수 있니? –

관련 문제