테이블은 데이터로드에 대한 정보를 유지합니다. 그것의 로딩은 내가 배치 (이것은 완벽한 이름이 아닐 수도 있음)로 바뀐 것입니다. 단계 및 집합은 이미 정의 된 메타 테이블이며 향후 해당 콘텐츠가 업데이트되지 않습니다 (적어도 오래된 것은 삭제되지 않습니다). 세트는 데이터 유형의 정의입니다 (예 : "this is that that is that that"). 여러 세트가 한발을 내딛습니다. 몇 가지 단계가 배치를 만듭니다. 집합이 여러 단계에 묶일 수 있으므로 집합을 다시 사용할 수 있습니다. 실제 (로드 된) 데이터는 다른 테이블에 저장되지만이 특정 작업에는 중요하지 않습니다. 중첩 된 컬렉션과 함께 복잡한 개체 넣기
I이 (간체) DB 구조가 있습니다public class JoinedModel
{
public Batch Batch { get; set; }
public IEnumerable<Step> Steps { get; set; }
}
public class Step
{
public int StepId { get; set; }
public string Description { get; set; }
public IEnumerable<Set> Sets { get; set; }
}
public class Set
{
public int SetId { get; set; }
public string Type { get; set; }
public string EventCode { get; set; }
}
:
(. 로그 테이블이 외래 키 제약 조건이없는)를 나는 이런 식으로 뭔가를 얻을 필요가있는
하나의 Batch
에 Step
개체 컬렉션을 포함하는 방법 (각각은 적절한 Set
개체 컬렉션이 있습니다. 출력 집합 클래스에는 이벤트 코드가 있고, Logs
및 Events
테이블에서 얻은)?
여러 '시도한'시도, 조인, 그룹화하지만 해결 방법을 찾지 못했습니다. 한 문장에서 이런 식으로 만들 수 있습니까? 아니면 Batch
을 별도로 선택해야합니까? 나머지는 취해야합니까? 그럼 어떻게?
DB 디자인을 변경할 수 없습니다. 다음
" '복수를 시도 .....에서"나는 시도의 어떤 종류를 볼 수 없습니다. EF 솔루션을 원하십니까? 순수한 SQL? LinQ에서 SQL로? –
태그와 마찬가지로 (충분하다고 생각하는) LINQ to SQL. 시도가 이루어졌지만 실제로는 아무 것도 의도 한대로 작동하지 않았고 질문에 추가 할 수있는 "도움이되는"대표자가 무엇인지 모릅니다. – Mars
귀하의 모델이 논리적으로 합리적이지는 않습니다. 여러 세트가 한 단계 씩 나아 간다고 말하지만, 모델에서 여러 단계가 또한 세트를 만든다 (그리고 다 대다 관계는 매핑 테이블을 통해 기록된다)! 로그와 단계, 로그와 세트 사이에는 일대일 관계가 있습니다. 즉, 여러 세트가있는 단계가 없거나 여러 단계가없는 세트를 로그 테이블에 입력 할 수 있습니다. 저는 여러분이 드로잉 보드로 돌아 가야 할 수도 있습니다 - 또는 우리가 디자인에 대해 조언을 할 수 있도록 달성하고자하는 것에 대해 좀 더 구체화해야한다고 생각합니다. – Steve