PDA

View Full Version : جدول داینامیک در ef



forestasphalt
شنبه 08 تیر 1392, 15:42 عصر
public virtual JsonResult CatSearch(string value)
{

Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("دوربین", "CatCameras");
dictionary.Add("لنز", "CatLenzs");
dictionary.Add("فلاش", "CatFlashes");
dictionary.Add("لوازم جانبی", "catAccessories");
if (dictionary.ContainsKey(value))
{
object val =(object)dictionary[value];



}

}

من یه dropdown دارم که Value رو پاس میدم و مقدارشو توی دیکشنری میذارم
حالا میخوام موقعی که مثلا value برابر با دوربین بود بیام اطلاعات رو از جدول CatCameras بخونم و...
الان میخوام بدونم چجوری میشه کوئری رو با entity انجام بدم؟

aghayex
شنبه 08 تیر 1392, 18:05 عصر
شما می تونید از رویداد select cheng شی dropdown استفاده کنی و در اون مقدار گزینه ی انتخاب شده رو به یه کوئری بدی و اون کوئری مقادیری که برابر این مقدار هست رو برات برگردونه و در همون رویداد اون مقادیر رو در یه شی دیگه بریزید

forestasphalt
یک شنبه 09 تیر 1392, 08:51 صبح
شما می تونید از رویداد select cheng شی dropdown استفاده کنی و در اون مقدار گزینه ی انتخاب شده رو به یه کوئری بدی و اون کوئری مقادیری که برابر این مقدار هست رو برات برگردونه و در همون رویداد اون مقادیر رو در یه شی دیگه بریزید
با تشکر من مقدارو گرفتم الان داخل val برابر با همون چیزی که میخوام،ولی میخواستم ببینم راهی وجود داره که همون جا مثلا context. رو زدم بشه یه کوئری باهاش نوشت
من با If های مختلف مشکلمو حل کردم میخواستم ببینم کوئری رو میشه اینجوری نوشت که context. به حای اینکه اسم جدولمو بنویسم مقدار متغر Val که برابر با نام جدولم هست رو بذارم

aghayex
یک شنبه 09 تیر 1392, 17:46 عصر
دوست عزیز چون ما با ان تی تی با اشیاء سر و کار داریم و شما یه رشته داری که حاوی نام جدول هست به نظر من شما دو راه داری :
1 - استفاده از سوئیچ کیس به جای شرط if
2 - استفاده از دستورات و زبان اس کیو ال که در اونجا شما کوئریتونو می تونید در قالب یه رشته به ان تی تی بدید و در همون رشته نام جدولتونو ست کنید
3 - اینها رو هم تست کن شاید جواب بده :

string sSQL = "select * from "+tblName+" where title='"+pageName+"'";
var art = webDB.ExecuteStoreCommand(sSQL);


یا

string sql = string.Format("SELECT VALUE {0} FROM CodeFirstContainer.{0} AS {0}", className);
return new ObjectQuery<T>(sql, ((IObjectContextAdapter)this).ObjectContext, MergeOption.NoTracking);