2012-10-23 2 views
-2

두 테이블의 레코드를 표시하려는 쿼리와 관련하여 약간의 문제가 있습니다. 나는 1두 번째 테이블에서 첫 번째 테이블과 다른 테이블에서 한 행을 얻는 방법

name | id 
---------- 
Shop | 1 
Shop | 2 

테이블 2

name | id | shopid 
item | 1 | 
item | 2 | 
item | 3 | 

내가 원하는 표와 같은

(첫번째 table.id에 관련) 2 테이블에서 첫 번째 테이블과 많은 행에서 하나 개의 행을 표시해야

두 테이블의 속성을 포함하는 항목의 개체가 있지만 테이블 1의 단일 레코드를 표시해야합니다. (tr 조인과 함께, 그리고 다른 방법으로 테이블 1 (첫 번째 레코드 정보 및 다른 비어 있습니다)에서 더 많은 값을 받고)). 여기

public class ItemsInfo 
{ 
    public Shopname { get; set;} 
    public item { get; set; } 
} 

public List<ItemsInfo> ShopItems(int ShopId) 
{ 
    var items = from i in db.items 
       join s in db.shops on i.shopid equals s.id 
       where s.id == ShopId 
       select new ItemsInfo 
          { 
           shopname = s.name, 
          items = i.name 
          } 
    return items.Tolist(); 
} 

내가 결과를 원하는 샘플 코드 및 해결 방법 :

만든 주요 개체를 찾을 수와 주요 객체로 2 테이블의 중첩 된 객체를 추가

Shopname : abcd 
items : item 1 
items : item 2 
items : item 3 
+2

당신이 우리에게 샘플 데이터를 표시 할 수있는 항목

public class Shop { /// Shop Object public string Shop { get; set; } public List<Item> Items { get; set; } } public class Item { ///Items Object public string Name { get; set; } public string Picture { get; set; } } public List<Item> ItemsList(int id) { var item = from i in DB.Items where i.ShopId == id select new ShopItem { Name = i.Name, Picture = i.ItemPictures }; return item.ToList(); } public List<Shop> ShopItems(int ShopId) { var Shopitms = from shop in DB.Shops where shop.Id == ShopId && shop.IsActive == true && shop.IsDeleted == false select new Shop { Shop = shop.Name, Items = ItemsList(shop.Id) } return ShopItms.ToList(); } 

에 대한 2 차를 만들어? 해당 샘플 데이터의 예상 결과는 무엇입니까? 당신이 시도한 linq 쿼리가 작동하지 않는 것을 우리에게 보여줄 수 있습니까? 이미 IEnumerable 을 구현하는 객체에 있습니까? 그렇다면 그 대상은 무엇입니까? –

+0

먼저 두 번째 테이블에 합류했지만 성공하지 못했습니다! –

+0

질문을 업데이트 해주세요. –

답변

1

여기

입니다. 16,

가게 테이블에 대한 2 개체 1, 잘 작동 :)

관련 문제