Tôi có hai câu lệnh chọn trong LINQ với Union
.Làm thế nào để gán một thuộc tính int rỗng trong một kiểu vô danh trong LINQ với một Union?
A RoleID
cần phải có giá trị null trong một trong các lựa chọn. Tôi nhận được lỗi dưới đây.
Nếu số RoleID
có giá trị, nó hoạt động tốt. Báo cáo là một thực thể EF với các thuộc tính.
Nó có thể là bất cứ điều gì trong ví dụ này. Ví dụ đơn giản cho mục đích minh họa.
Mã trong LinqPad:
var list = Reports.Select(r => new
{
RoleID = 3
})
.Union(Reports.Select(r => new
{
RoleID = new Nullable<int>() <= error
//RoleID = (int?) null <= error
//RoleID = 4 <= works
}));
list.Dump();
Làm thế nào để làm cho nó làm việc với một giá trị null và làm Id vai trò của kiểu int?
Thông báo lỗi:
'System.Linq.IQueryable' không chứa một định nghĩa cho 'Liên minh' và tốt nhất phương pháp mở rộng quá tải 'System.Linq.ParallelEnumerable.Union (System.Linq. ParallelQuery, System.Collections.Generic.IEnumerable) có một số đối số không hợp lệ luận Instance: không thể chuyển đổi từ 'System.Linq.IQueryable' thành 'System.Linq.ParallelQuery'
Bất kỳ nhận xét nào về phiếu giảm giá? OP đã chỉ ra rằng 'RoleID = 4' hoạt động cho chúng ... – Kobi
Không phải là sự suy giảm của tôi, nhưng bạn không thay đổi câu trả lời? Có vẻ như ban đầu bạn đã thay đổi phần 'Liên minh' của truy vấn –
Tôi cần RoleID để có giá trị trong một trong các lựa chọn.Cũng giống như trong SQL, nơi bạn có thể gán một giá trị rỗng cho một giá trị lựa chọn và trong một công đoàn khác, bạn có thể chọn một cột thực tế ở cùng một vị trí. Concat không tạo nên sự khác biệt. Nó cho cùng một lỗi. –