나는 다음과 같은 간단한 "교과서"클래스가 정의되어 있습니다 : 제품에정규화 된 테이블에서 JOIN 된 데이터를 검색하는 표준 패턴은 무엇입니까?
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int Category { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
카테고리 필드는 Category 클래스의 id 필드를 참조하는 정수입니다. 데이터베이스에서는 Product 테이블과 Category 테이블간에 외래 키 관계가 있습니다.
그러나 내 신청서에는 제품 카테고리의 이름을 표시해야합니다.
Q1는 :
public class ProductJ : Product
{
public string CategoryName { get; set; }
}
및 다음 다음과 같이 지금 메소드 getProductsJ이있는 경우 : 다음과 같이 올바른 연습을하는 새로운 클래스를 정의하는 것입니다
public class Test
{
public List<Category> Categories = new List<Category>() { ... };
public List<Product> Products = new List<Product>() { ... };
public List<ProductJ> getProductsJ()
{
var products = from p in Products
join c in Categories on p.Category equals c.Id
select new ProductJ { Id = p.Id, , Name = p.Name, CategoryName = c.Name }; //!
return products.ToList();
}
}
Q2를 : 위 항목이 범주 이름이있는 제품 목록을 검색하는 가장 좋은 방법입니까?
Q3 : 선택 진술 (//!)에서 기본 클래스 제품 linqwithout을 하나씩 입력해야하는 필드를 빠르게 채울 수 있습니까?
감사합니다.
고마워. 그 대답은 Q3. 그러나 테이블 그리드에 바인딩하기가 어려울 수 있습니다. –
왜 바인딩이 어려워 집니까? 하위 속성 바인딩을 사용할 수 있습니까? 예 : list [0] .Category.Name? – dugas
저는 여기에 @thedugas를 사용하고 있는데, 이것이 어떻게 테이블 그리드에 바인딩하는 것을 어렵게하는지 모르겠습니다. IEnumberable & IList를 전에 datagrids에 쉽게 바인딩했습니다. –