PDA

View Full Version : جستجوی بین تاریخ در کد فرس



Helpco
سه شنبه 25 اردیبهشت 1397, 10:07 صبح
سلام من با کد فرس دارم کار میکنم وقتی یک جستجو بین دو تاریخ انجام میذم این خطا میده بهم


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


اینم کد جستجو






var DataSource = db.CustomerPurchasingPowerr.Get(x => x.Archive==1
&& (x.Customer.name.Contains(texNameCu.Text) || IsNullOrEmpty(texNameCu.Text))
&& (x.Customer.mobile.Contains(TexMobileCu.Text) || IsNullOrEmpty(TexMobileCu.Text))
&& (x.MelkType == combTypeProperty.Text || IsNullOrEmpty(combTypeProperty.Text))
&& ( IsNullOrEmpty(Date_AZ.Text)|| x.Customer.UserrRecord.Value.Date >= Date_AZ.DateTime.Date) && (IsNullOrEmpty(Date_AZ.Text) || x.Customer.UserrRecord.Value.Date <= Date_TA.DateTime.Date)














)
.Select(x => new
{
x.Customer.Customer_id,
x.Customer.CodeDisplay,
x.Customer.name,
x.Customer.mobile,
x.Customer.phone,
x.MelkType



}).OrderByDescending(x => x.CodeDisplay).ToList();

danialafshari
سه شنبه 25 اردیبهشت 1397, 11:15 صبح
با سلام
کوئری یا بهتر بگم extention در code first و db first برای CRUD فرقی نداره
اکستنشنی که شما مینویسید اگر دیباگ کنید میبینید که یک کد SQL تولید و توسط ADO.NET اجرا میکنه
متاسفانه بعضی وقت ها با بعضی از کلاس ها و توابع مشکل پیدا میکنه و نمیتونه خوب ترجمه کنه بعضی وقتها هم نه پس بهتره قبل از Ex بیاید اون رو Initialize کنید
مثلا :
x.Customer.UserrRecord.Value.Date >= Date_AZ.DateTime.Date

//رو به شکل
DateTime DTime=Date_AZ.DateTime.Date; //Initialize
x.Customer.UserrRecord.Value.Date >= DTime


// OR :

string FirstName=txtFirstName.Text.Trim(); //Initialize
x.Customer.FirstName == FirstName
امیدوارم منظورو خوب رسونده باشم
موفق باشید

Helpco
سه شنبه 25 اردیبهشت 1397, 11:33 صبح
با سلام
کوئری یا بهتر بگم extention در code first و db first برای CRUD فرقی نداره
اکستنشنی که شما مینویسید اگر دیباگ کنید میبینید که یک کد SQL تولید و توسط ADO.NET اجرا میکنه
متاسفانه بعضی وقت ها با بعضی از کلاس ها و توابع مشکل پیدا میکنه و نمیتونه خوب ترجمه کنه بعضی وقتها هم نه پس بهتره قبل از Ex بیاید اون رو Initialize کنید
مثلا :
x.Customer.UserrRecord.Value.Date >= Date_AZ.DateTime.Date

//رو به شکل
DateTime DTime=Date_AZ.DateTime.Date; //Initialize
x.Customer.UserrRecord.Value.Date >= DTime


// OR :

string FirstName=txtFirstName.Text.Trim(); //Initialize
x.Customer.FirstName == FirstName
امیدوارم منظورو خوب رسونده باشم
موفق باشید

ممنون ولی باز برای تاریخ این خطا میده


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

Helpco
شنبه 29 اردیبهشت 1397, 08:59 صبح
من اینطوری حل کردم

DbFunctions.TruncateTime(x.Customer.UserrRecord).V alue >= Date_AZ.DateTime.Date &&(IsNullOrEmpty(Date_TA.Text)||DbFunctions.Truncate Time(x.Customer.UserrRecord).Value <= Date_TA.DateTime.Date)