2009-07-03 3 views
0

일련의 입력 필드에 관련 데이터를 수집하는 단일 페이지가 있습니다.MVC - 동일한 페이지에서 여러 엔티티에 데이터 삽입

사용자가 제출을 클릭하면 한 번에 두 개의 다른 데이터베이스 테이블에 데이터를 삽입하려고합니다. 즉, 첫 번째 삽입에서 기본 키를 가져온 다음 두 번째 삽입 작업에 기본 키를 사용하려고합니다.

이 모든 것을 한 번에 해보고 싶지만 MVC의 모델/엔티티를 사용하여이 작업을 수행하는 가장 좋은 방법은 확실치 않습니다.

답변

1

LINQ 또는 다른 ORM을 사용하고 있습니까? 일반적으로 이것들은 관련 엔티티를 추가하고 외래 키 관계를 자동으로 처리하는 기능을 지원합니다.

var modelA = new ModelA(); 
var modelB = new ModelB(); 

UpdateModel(modelA, new string[] { "aProp1", "aProp2", ... }); 
UpdateModel(modelB, new string[] { "bProp1", "bProp2", ... }); 

using (var context = new DBContext()) 
{ 
    modelA.ModelB = modelB; 
    context.ModelA.InsertOnSubmit(modelA); 
    context.SubmitChanges(); 
} 

이 자동으로 MODELA 및 modelB의 삽입을 처리하고 MODELA에 대한 기본 키가 modelB에 대한 외래 키에 제대로 설정되어 있는지 확인합니다 : 일반적으로, 제가 LINQtoSQL와 함께 할 것입니다 것은 같은입니다.

수동으로 수행하는 경우 거래 내에서 세 번째 단계로 먼저 modelA를 삽입하고 해당 삽입물에서 키를 가져 와서 modelB를 업데이트 한 다음 modelB를 데이터로 삽입해야 할 수 있습니다.

편집 :이 사용 UpdateModel을 표시했습니다하지만 당신은 모델이 메소드의 매개 변수 바인딩 함께 할도 수있다. 별도의 접두사가 있어야하고 bind 속성을 사용하여 어느 양식 매개 변수가 어떤 모델과 연결되어야 하는지를 지정해야하는 등 여러 모델에서 다소 까다로울 수 있습니다.

+0

DAAB를 사용자 지정 비즈니스 개체와 함께 사용하고 있습니다. 나는 그것이 까다로울 수 있다는 느낌이 들었다. – Dkong

관련 문제