Tôi có câu hỏi sau trong SQL mà tôi muốn chuyển đổi sang LINQ:Sql để LINQ khó khăn - nhóm bằng, có
select profile_id from t
where child_id in (1, 2 ,3, ...) //this will be a list of integers CHILDREN
group by profile_id
having count(distinct child_id) = 3
Tôi gặp một khó khăn như thế nào để viết dòng cuối cùng trong truy vấn sql của tôi vào linq. Sau đây là công việc của tôi cho đến nay:
public IQueryable<ProfileChildRelationship> GetPCRelByCids(List<int> children)
{
var query = from pcr in this._entities.ProfileChildRelationships
where children.Contains(pcr.pcChildIDF)
group pcr by pcr.pcProfileIDF into g
??? having ...?
select pcr;
return query;
}
Tôi nghĩ rằng vấn đề chính có thể là nhiều chuyển đổi một tuyên bố có sql vào một nơi tuyên bố LINQ, nhưng trong trường hợp của tôi, tôi không nghĩ rằng nó có thể viết thư nơi khác sau nhóm bằng câu lệnh linq!
Cập nhật:
Tình hình: Tôi có một số trẻ em, mỗi trong số đó có nhiều cấu hình khác nhau, (một số có thể giống nhau). Một người dùng sẽ chọn một số trẻ em, từ đó tôi muốn lấy được các cấu hình chung của chúng. Đó là, nếu cấu hình X được tìm thấy cho MỌI trẻ em, hơn tôi sẽ nhận được nó, nếu hồ sơ Y được tìm thấy cho mỗi đứa trẻ ngoại trừ một, hơn nó sẽ là không hợp lệ!
Tôi bây giờ bắt đầu nghĩ rằng tôi phải sử dụng một truy vấn lồng nhau! – test