Tên và loại cột giống hệt nhau, tuy nhiên nó đến từ hai thực thể riêng biệt. Dưới đây là một ví dụ đơn giản:Nối hai biến IQueryable với nhau bằng cách sử dụng LINQ
--Query View
var v_res = from s in db.V_CMUCUSTOMER
select s;
--Values from table less values from view
var res = from s in db.CMUCUSTOMERs
where !(from v in v_res
select v.ID).Contains(s.ID)
select s;
--join table and view values into one variable
var res_v_res = (from c in res
select c).Union(from v in v_res
select v);
tôi nhận được lỗi sau tuy nhiên:
luận Instance: không thể chuyển đổi từ 'System.Linq.IQueryable' để System.Linq.ParallelQuery
Tôi đặt cược nếu bạn đã ngừng sử dụng 'var', câu trả lời sẽ rõ ràng. Bằng cách cho phép trình biên dịch chọn loại v_res và res, bạn có thể sống với các lựa chọn của nó. –
hãy xây dựng. – stats101
Trình biên dịch có thể chọn loại không mong muốn cho một trong các biến đó, sau đó nó có thể chọn giữa các triển khai khác nhau của Liên minh dựa trên lựa chọn đó (System.Linq.Enumerable.Union, System.Linq.Queryable.Union để đặt tên cho hai khả năng) . Thay vào đó, nếu bạn chỉ định kiểu, trình biên dịch sẽ cho bạn biết khi bạn yêu cầu điều không thể. –