5

Tôi muốn lấy phần ngày chỉ từ giá trị ngày 'cơ sở dữ liệu' Tôi đang sử dụng mã bên dưới .. nhưng đó là lấy ngày và giờ.chỉ lấy phần ngày từ giá trị ngày giờ bằng cách sử dụng khung thực thể

using (FEntities context = new FEntities()) 
{ 
    DateTime date = DateTime.Now; 
    if (context.tblvalue.Any(x => x.date == date)) 
    {  
    } 
} 
phần
+0

Đừng quên đánh dấu chọn câu trả lời cho questions.That của bạn sẽ giúp mọi người khác để tìm câu trả lời đúng. Có vẻ như bạn chưa bao giờ chọn câu trả lời cho câu hỏi của mình. –

+0

điều này là không làm việc trên me.but tôi sử dụng như below.now làm việc .. cảm ơn bạn 'x.date.Value.Date == date.Date' – Safeena

+0

' DateTime.Date' không được hỗ trợ trong EF cho đến bây giờ, vì vậy tôi không biết làm thế nào điều này có thể được làm việc ngay bây giờ cho bạn. –

Trả lời

17

Bạn có thể so sánh chỉ định:

context.tblvalue.Any(x => x.date.Year == data.Year 
         && x.date.Month == data.Month 
         && x.date.Day == data.Day); 

EDIT: Bạn cũng có thể thử như sau:

context.tblvalue.Any(x => EntityFunctions.TruncateTime(x.date) == data.Date); 

cách tiếp cận khác:

context.tblvalue.Any(x => SqlFunctions.DatePart("year", x.date) == data.Year 
         && SqlFunctions.DatePart("month", x.date) == data.Month 
         && SqlFunctions.DatePart("day", x.date) == data.Day); 
+1

cho điều này, phiên bản khung thực thể mà tôi phải sử dụng.Bây giờ tôi không thể sử dụng 'x.date.Year == date.Year' – Safeena

+0

@Safeena xem chỉnh sửa của tôi. –

+4

Trong các phiên bản mới hơn của EF, EntityFunctions đã lỗi thời và đã được thay thế bằng "DbFunctions", nhưng nếu không cách tiếp cận thứ hai là rất hợp lệ và những gì tôi sử dụng trong những trường hợp này. –

0
context.Database.SqlQuery<T>(sql, sql_parameters) 

chấp nhận SQL thuần túy trong tham số đầu tiên. Sử dụng chức năng của máy chủ MS SQL CONVERT (VARCHAR (6), date_value, 112) AS MonthYYYYmm để truy lục năm với tháng.

2

Với thực thể khuôn khổ 6 và cập nhật sử dụng

context.tblvalue.Any(x => DbFunctions.TruncateTime(x.date) == data.Date); 
Các vấn đề liên quan