30/09/2018, 19:09

Hỏi về truy vấn join trong Linq

Chào mọi người,em đang học về Linq có apply vào 1 project cụ thể theo mô hình 3 lớp,ở đây e sử dụng Linq to SQL,theo mô hình dữ liệu e có 2 table là

{
    String ProductID;
    String ProductName;
}
``` và một table 
```ProductInfo
{
    String InfoID;
    String ProductID;
    Double Price;
    DateTime CreateDate;
}```

Ở lớp BUS em tạo ra 2 class tương ứng với 2 dbml kia,bây giờ em cần ở lớp `ProductBUS` một phương thức để trả về một `IEnumerable<ProductViewModel> ` đối tượng : 
```ProductViewModel
{
    String ProductID;
    String ProductName;
    Double Price;
    DateTime CreateDate;
}``` 
để đổ dữ liệu lên Datagridview trên lớp GUI,khi sử dụng truy vấn join thì phải làm thế nào ạ ? LINQ to SQL nó không cho trả về Anonymous Type ,cảm ơn mọi người :smiley:
Nguyễn Minh Hải viết 21:13 ngày 30/09/2018

LINQ to SQL nó không cho trả về Anonymous Type ,cảm ơn mọi người

Gợi ý nha bạn

var List = from p in Product
               from q in ProductInfo
              where p. ProductID = q.ProductID
              select new { p.ProductID, p.ProductNam,q.Price,q.CreateDate }

List trả về kiểu IEnumerable như bạn mong muốn
Để hiểu rõ hơn về linq to sql bạn lên google search 101 example linq sẽ có nhiều cái

Đức viết 21:10 ngày 30/09/2018

em muốn 1 hàm trả về 1 IEnumerable<new object> để trên lớp giao diện gọi phương thức này,còn kiểu var thì nó chỉ có khả năng hiển thị lên thôi chứ nó ko trả về đc

Nguyễn Minh Hải viết 21:23 ngày 30/09/2018

em muốn 1 hàm trả về 1 IEnumerable<new object> để trên lớp giao diện gọi phương thức này,còn kiểu var thì nó chỉ có khả năng hiển thị lên thôi chứ nó ko trả về đc

Có cách này hơi củ chuối chưa tìm ra cách hay hơn nếu có thể bạn tìm hiểu thử

var List = from p in Product
               from q in ProductInfo
              where p. ProductID = q.ProductID
              select new { p.ProductID, p.ProductNam,q.Price,q.CreateDate }


List<ProductViewModel> LProductViewModel = new List<ProductViewModel>();

foreach(var q in List)
{
    ProductViewModel a  = new ProductViewModel();
    a.ProductID = q.ProductID;
    a.ProductName = q.ProductName;
    a.Price = q.Price;
    a.CreateDate = q.CreateDate;
    LProductViewModel.add(a);
}
return LProductViewModel ;



Đức viết 21:21 ngày 30/09/2018

hê hê đợi tí e test coi sao đã,tks bro

Bài liên quan
0