2010-07-06 38 views
8

var islemList = (từ isl trong entities.Islemler nơi (isl.KayitTarihi.Date> = dbas & & isl. KayitTarihi.Value.Date < = dbit) chọn isl);LINQ to Entity có được một ngày từ DateTime

Lỗi: ngày không được hỗ trợ trong LINQ to Entities ... Tôi có thể lấy ngày bằng LINQ như thế nào.

+0

Loại dbas và dbit là gì? Có phải là DateTime không? Và KayitTarihi.Value là gì? –

+0

Hãy thử nó mà không có '.Date' và' .Value.Date' nếu dataType của bạn là DateTime (nullable). –

Trả lời

1

nếu KayitTarihi là một cột ngày trong DB (và dbas và dbit là DateTime), sử dụng:

var islemList = (from isl in entities.Islemler where (isl.KayitTarihi >= dbas && isl.KayitTarihi <= dbit) select isl); 
+0

KayitTarihi là DateTime nhưng tôi chỉ cần Date – serkan

+1

Thử '((Nullable ) isl.KayitTarihi.Date)'. Không chắc chắn làm thế nào si LINQ sẽ phản ứng. Bạn có thể thay đổi 'dbas' và' dbit' (nếu chúng không có phần thời gian), do đó bạn không phải trích xuất giá trị ngày từ 'KayitTarihi':' ... where (isl.KayitTarihi> = dbas && isl. KayitTarihi

-1

Thuộc tính .Date không được hỗ trợ trong LINQ to Entities (mặc dù nó có thể được hỗ trợ trong việc triển khai khác của Linq).

Tôi nhận thấy rằng bạn chỉ muốn so sánh ngày, nhưng không có vấn đề thực sự nào khi so sánh các giá trị dữ liệu nếu giá trị dbas và dbit là datetimes với thời gian 00:00:00. Bạn có thể phải bù đắp các ngày hoặc sử dụng kiểm tra bất bình đẳng khác để có được khoảng thời gian thích hợp nhưng so sánh sẽ làm việc như bạn dự định.

Tôi sẽ đích thân đi với giải pháp của Jandek.

24
+8

Lưu ý rằng EntityFunctions hiện không được chấp nhận và System.Data.Entity.DbFunctions nên được sử dụng thay thế. – Meryovi

+2

* Bây giờ * là EF 6 trở đi. Các triển khai đã không thay đổi, nó chỉ đơn giản là một sự đổi tên với các chức năng cũ ủy nhiệm cho các chức năng mới, vì vậy bạn có thể cập nhật một cách an toàn mã hiện có của bạn. Từ thông điệp cam kết: * "Các lớp có tên cũ về cơ bản chỉ ủy quyền cho các lớp mới và cũng được đánh dấu là lỗi thời để giúp đưa mọi người đến lớp mới." * – Stijn

Các vấn đề liên quan