Cú pháp chính xác trong LINQ để tìm các bản ghi không rỗng là gì? Tôi đang sử dụng mã bên dưới nhưng không có kết quả.không null trong LINQ
Cảm ơn bạn rất nhiều vì đã giúp đỡ.
var list = (from t in dal.table
where t.name != null);
Cú pháp chính xác trong LINQ để tìm các bản ghi không rỗng là gì? Tôi đang sử dụng mã bên dưới nhưng không có kết quả.không null trong LINQ
Cảm ơn bạn rất nhiều vì đã giúp đỡ.
var list = (from t in dal.table
where t.name != null);
Bạn quên select
.
var list = (from t in dal.table
where t.name != null
select t);
Cảm ơn tôi đã quên mất điều đó. Nhưng khi tôi có lựa chọn, tôi vẫn không nhận được các bản ghi có giá trị trong trường tên. – MdeVera
@MdeVera: Bạn có cần 'string.IsNullOrEmpty' không? (Không chắc chắn, chỉ là một phỏng đoán.) – Mehrdad
@MdeVera: Hãy chắc chắn rằng chúng thực sự vô giá trị. Thiếu 'select' là tất cả những gì tôi có thể nghĩ ngay bây giờ – BoltClock
101 C# LINQ Ví dụ: http://msdn.microsoft.com/en-us/vcsharp/aa336746
tôi gặp phải những hành vi kỳ lạ như vậy. C# code đang
public DbSet<Document> Documents { get; set; }
List<Document> = Documents
.Where(d => d.BusinessId = 818)
.Where(d => d.CurrencyId != null)
.ToList();
nhưng câu lệnh SQL được tạo ra là thế này:
exec sp_executesql N'SELECT
[Extent1].[DocumentId] AS [DocumentId],
[Extent1].[DateCreated] AS [DateCreated],
...
FROM [dbo].[Documents] AS [Extent1]
WHERE [Extent1].[BusinessId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=818
Rõ ràng LINQ bỏ qua .Where (d => d.CurrencyId = null!) Khoản.
Giải pháp của tôi là như sau:
List<Document> = Documents
.Where(d => d.BusinessId = 818)
.ToList() // <== Gel all documents and filter in memory
.Where(d => d.CurrencyId != null)
.ToList();
Lưu ý: Về mặt kỹ thuật, chúng tôi di chuyển các bộ lọc KHÔNG Null từ LINQ-to-SQL để đối tượng LINQ-To-.
Rất kém hiệu quả vì chúng tôi chọn TẤT CẢ tài liệu vào bộ nhớ và lọc ở đó (thay vì lọc ở cấp db).
Tôi trường hợp của tôi số lượng hồ sơ thường nhỏ nên giải pháp đã hiệu quả đối với tôi.
Điều này sẽ gợi ý rằng mô hình của bạn không phù hợp với cơ sở dữ liệu thực - rằng mô hình là cho một cơ sở dữ liệu trong đó 'CurrencyId' không phải là nullable. – hvd
Loại dữ liệu của tên là gì? – Clayton