저는 MVC를 처음 사용합니다. 내 질문에 어리 석거나 너무 간단한 것처럼 들리더라도 실례합니다. 데이터베이스 액세스를 위해 엔터티 데이터 모델을 사용하고 있습니다. 그래서 내 모델 폴더에서 EDMX 파일을 추가했고 컨트롤러와 강력한 형식의 뷰에서 모델 클래스에 액세스 할 수 있습니다. 예를 들어 내 컨트롤러에서 두 개 이상의 테이블에 액세스 할 때 문제가 발생합니다.익명 객체 컬렉션을 컨트롤러에서보기로 전달하는 방법
Departments(DepartmentID, DepartmentName, DepartmentPhone)
Insurances(InsuranceID, InsuranceName, InsuranceAddress)
Employees(EmployeeID, EmpFName, EmpLName, DepartmentID, InsuranceID)
을 그리고 자신의 부서와 보험 정보와 종업원의 목록을 표시하려면 :
것은 내 DB에 테이블을 다음과 같은 경우. '그래서 내가 할 수있는
using (var context = new MyEntities())
{
var model = (from d in context.Departments
join e in context.Employees on d.DepartmentID equals e.DepartmentID
join I in context.Insurances on I.InsuranceID equals e.InsuranceID
select new
{
DepartmentID = d.DepartmentID,
EmployeeID= e.EmployeeID,
EmpFName= e.EmpFName,
EmpLName= e.EmpLName,
DepartmentName= d.DepartmentName,
InsuranceName= I.InsuranceName
}).ToList();
return View(model);
}
내 모델 폴더에이 익명 형식의 클래스가없는 : 내 컨트롤러의 동작 방법에
나는 EDM를 사용하여 DB를 액세스하고 익명의 형태로 정보를 얻을 수 강력하게 형식화 된보기를 작성하십시오. 이 목록을보기로 전달하는 가장 좋은 방법은 무엇입니까? 콜렉션이 너무 큰 경우에는 뷰백을 사용하는 것이 과도합니다. 이 익명 클래스에 대한 새로운 모델을 생성하는 것은 컨트롤러 액션 메소드에서 선택을 변경하면 항상 업데이트되어야하므로 소리가 나지 않습니다.
모든 제안을 환영합니다. 나는 SO에 관한 다른 질문을 살펴 보았으나 관련성있는 것을 찾지 못했습니다.
감사합니다.
이 방법은 당신의 인텔리 지원을 제공하여 뷰를 제공하고, 모든 * For For 메소드를 쉽게 사용할 수있게 해준다. 또한 업데이트 또는 삽입이 유용 할 경우 동일한 모델에서 정보를 다시 보낼 수있는 옵션을 제공합니다. –
Darin plz 내 답장을 참조하십시오. – shazia
'foreach' 루프에서'@ model'을 사용하는 이유는 무엇입니까? '@ model'은보기가 강하게 입력되는 모델을 나타내는 (@ 상단에 보통 한 번만)보기에서 한 번만 나타나야합니다 :'@model List'. 그리고'@ model' 대신에 루프 안에서'@ item'을 사용하십시오. –