내가 생각 굉장이 두 자습서를 사용하고 도움이 그것을 투쟁을 찾는 필요 해요 : http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx 는
현재 내 주요 문제/혼란은 http://msdn.microsoft.com/en-us/data/gg685467 :
내가 제대로 얻는 방법을 모르는 CodeFirst 테이블/엔티티가 다른 테이블/엔티티의 데이터를 내보기에 표시 :
0 나는 (목록 형/옵션을 사용하여) 자동차에 대한보기를 만들 때public class Car {
public int ID { get; set; }
public string Name { get; set; }
public int EngineID { get; set; }
public virtual Engine { get; set; }
}
public class Engine {
public int ID { get; set; }
public string Name { get; set; }
public string Manufacturer { get; set; }
// (plus a whole lot of other things)
}
는 지금은 engineID를 제외하고
@foreach (var item in Model) {
<tr>
<td>@item.ID</td>
<td>@item.Name</td>
<td>@item.EngineID</td>
</tr>
완벽한 ... 뷰어에 대부분 쓸모있는 좋은 자동 생성 된 목록을 얻고, 내가 원하는 Engine.Name을 표시하는 대신
그래서 내가 EF 게으른 로딩 사용할 수 있습니다 가정 : 불행하게도 나는 것을 시도 할 때<td>@item.Engine.Name</td>
을, 내 ObjectContext는이 B를 가지고 말한다 EEN은 더 이상 데이터가 내가 컨트롤러에가는 시도 연결 그리고
을 필요로하고 저를 알려주는 Engine.Name
var cars = (from c in db.Cars.Include("Engine.Name") select c;
을 포함하지 수 있도록 배치 : Entities.Engine은 탐색 속성을 선언하지 않습니다 이름이 '012' '이름'
...?
가 포함 거짓말 ("엔진") 잘 작동하지만 내가 원하는 모든 이름이며, ("엔진")는 이전 상황과 같은에서 내가
을 원하지 않는 것들의 많은 양의로드 포함 이 EngineName뿐만 아니라 자동차에 대한 DB에서 뷰를 만들었습니다. 그러나 CodeFirst와 나의 고결함으로 나는 이것을 할 수있는 방법을 찾지 못했습니다.
이 문제를 어떻게 해결해야합니까?
저는 Car 엔티티와 거의 같은 모델을 만들 수 있다고 생각했지만 Engine.Name을 추가했습니다. 이것은 내가 다음 여러 위치에 다시 사용할 수 있기 때문에 좋은 것입니다,하지만 난 그것을 위 등
뿐만 아니라 TDD를 배우고 싶은하지만를 채우는 방법에 딱하다는 이미 저를 실망 : P
시를 다른 튜토리얼 링크 또는 읽을 수있는 편리한 것들이 크게 평가 될 것입니다.
당신이 나에게 CarSummaryView의 뷰 모델의 빠른 예를 들어 줄 수 있을까 다음 할 수있는 방법을 채우는 데? 또한 EngineName = e.Name의 e는 무엇입니까? 당신이 모든 일을 할 수있게하려는 것이 아니라, 내 머리 속에서 연결되어 이해가 안되는 것일뿐입니다. – mejobloggs
간단한 예제가 제공되었습니다. 전자는 실수 였어. 지금 편집 했어. – Gats
정말 고마워. 또한, 새 CarView()를 선택하면 .Include ("Engine.Name")을 사용할 필요조차 없다는 것을 알 수 있습니다 (지연로드가 해제 된 경우는 예외). – mejobloggs