مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza373

عضویت از 1394/10/30

مقایسه تاریخ در دستورات Linq to Entities

  • چهارشنبه 17 اردیبهشت 1399
  • 18:54
تشکر میکنم

سلام خسته نباشید

من یه لیستی از آبجکت ها رو دارم( سمت ویو ) و میخوام از داخل این لیست تمام اونهایی رو که تاریخ ورود و خروجشون کوچکتر مساوی یا بزرگتر از تاریخ x هست استخراج کنم:

var result =list.FirstOrDefault(p => p.EntryDate <= mydate && p.ExitDate > mydate );

ولی هنگام اجرا خطای زیر رو میده ، تو گوگل هم سرچ زدم راه حل های ارائه شده کارساز نبود، لطفا کمک کنید. ممنون

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

sepehrzare17

عضویت از 1399/01/12

  • پنجشنبه 18 اردیبهشت 1399
  • 12:13

سلام از کلاس DateTime استفاده کنید

کاربر سایت

morteza373

عضویت از 1394/10/30

  • پنجشنبه 18 اردیبهشت 1399
  • 12:24

میشه لطفا واضح تر توضیح بدید؟با datetime چیکار کنم؟همه تاریخ های من از نوع datetime هستن، اصلا date ندارم نمیدونم چرا این خطا رو میده

من قبلا در سمت سرور از کد مشابه کد بالا استفاده کردم و مشکلی نبوده حالا نمیدونم چرا سمت ویو این مشکل وجود داره

دوستان لطفا راهنمایی کنین

ممنون

کاربر سایت

sepehrzare17

عضویت از 1399/01/12

  • پنجشنبه 18 اردیبهشت 1399
  • 20:31

ببین DateTime.Now داریم که تاریخ حال حاظزر رو میاره اما من نمیدونم شما میخوای چجور استفاده کنی اگه بخوای تاریخ امروز رو بیاری باید بگی DateTime.ToDay یعنی تو لامبدا که نوشتی باید برا شرط این که گفتم رو بزاری 

اگه بازم نفهمیدی این لینک رو بخون https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netcore-3.1

کاربر سایت

morteza373

عضویت از 1394/10/30

  • پنجشنبه 18 اردیبهشت 1399
  • 20:43

مشکل حل شد، مشکل اصلا از سمت کلاینت نبود ، چون خطای زمان اجرا میداد من فکر میکردم سمت ویو خطا دارم ولی در نهایت متوجه شدم سمت سرور جایی که مدل رو پر میکنم و به ویو پاس میدم ، برای استخراج دیتا و پر کردن مدل ، از عبارت DateTime.Now.Date در داخل دستورات linq استفاده کرده بودم و مشکل از .Date بود :

کد خطادار:

var model=List.Where(p => p.Date >= DateTime.Now.Date);

بعد از تصحیح خطا:

DateTime NowDate=DateTime.Now.Date;
var model=List.Where(p => p.Date >=NowDate);

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)