2016-06-27 2 views
0

ASP.NET에서 MVC 스캐 폴딩을 사용하고 있습니다. 나는 외래 키를 가지고있는 테이블을 가지고 있는데, 외래 키를 가지고 있기를 원한다. 조금 혼란스러워.ASP.NET MVC 외래 키 표시

ManufacturerModelID의 외래 키로 ManufacturerModel 테이블에 연결된 장치 테이블이 있습니다. ManufacturerModel 테이블은 ManufacurerModelID의 기본 키, ManufacturerID의 외래 키 (Manufacturer 테이블의) 및 모델 필드로 구성됩니다. 내 장치 인덱스 화면에서 장치 제조업체 (제조업체 테이블에서) 및 모델을 표시하고 싶습니다. 현재 모델을 올바르게 표시하지만 제조업체를 추가하려고 할 때 열 머리글을 포함하여 전체 ManufacturerModel 레코드를 받았습니다. 다음 장치 지수 컨트롤러 ActionResult() 내가 가지고에서

: 나는 제조업체 및 모델에 대해 다음 한 내 장치 색인에서

var devices = db.Devices.Include(d => d.DeviceType).Include(d => d.ManufacturerModel); 
return View(devices.ToList()); 

<th> 
    @Html.DisplayNameFor(model => model.ManufacturerModel.ManufacturerID) 
</th> 
<th> 
    @Html.DisplayNameFor(model => model.ManufacturerModel.Model) 
</th> 
+0

엔티티 framworke 및 데이터베이스의 첫 번째 방법을 사용하고 있습니까? – Hadee

+0

예 모두 사용하고 있습니다 –

답변

0

그것은 당신 때문에 테이블입니다 처지. 장치가 ManufacturerModel과 직접적인 관련이 없습니다. 귀하의 관계는 다음을 기반으로합니다 : devices> DeviceType> ManufacturerModel. = db.Devices.Include을

VAR 장치 시도 (d => d.DeviceType) .Include (d => d.DeviceType.ManufacturerModel); [ManufacturerModel] - - ManufacturerModel> - [ManufacturerID] -이 경우이며, 경우> 제조 업체

외부 키가 제대로되어 내가 제대로 이해하면

+0

DeviceType에서 선택 사항이 아니므로 'd.DeviceType.ManufacturerModel'을 추가 할 수 없습니다. 그들은 두 개의 다른 테이블입니다. 'd.ManufacturerModel.Manufacturer'를 추가하면 반환보기 (devices.ToList())에 오류가 발생했습니다. –

+0

샘플 일뿐입니다. devicetype 테이블을 통해 ManufacturerModel 테이블에 액세스 할 수 있어야합니다. devicetype 아래에서 객체 이름을 확인하십시오. – Hadee

+0

고맙습니다. 일할 수 있어요. –

1

그래서, 당신은

이 장치가 모델에 Device이라는 클래스가 있으며 ManufacturerModel이라는 속성이 있으며 Manufacturer이라는 속성에는 Manufacturer 테이블의 열과 관련된 속성이 들어 있습니다. 난 당신이 Name 재산과 각각 열을 가지고 asume되며 쿼리를 만들 때 다음, 당신은 또한 포함 (가입)해야합니다

var devices = db.Devices 
    .Include(d => d.DeviceType) 
    .Include(d => d.ManufacturerModel) 
    .Include(d => d.ManufacturerModel.Manufacturer) 
같은 Manufacturer 테이블을

<tr> 
    <th> 
     @Html.DisplayNameFor(model => model.ManufacturerModel.Manufacturer.Name) 
    </th> 
    <th> 
     @Html.DisplayNameFor(model => model.ManufacturerModel.Model) 
    </th> 
</tr> 
<tr> 
    <td>@model.ManufacturerModel.Manufacturer.Name</td> 
    <td>@model.ManufacturerModel.Model</td> 
<tr> 

같은 것을 표시 할

+0

저에게 도움이 된 감사합니다. –