ورود

View Full Version : سوال: فیلد محاسبه شده در Model



aliblue
چهارشنبه 31 اردیبهشت 1393, 20:16 عصر
با سلام. من میخواهم یکی از Property های مدلم که لیستی از یک class است، در دیتابیس به صورت string ذخیره شود.یعنی برای مثال در کد زیر وقتی در برنامه ، 2 شی از work میسازم(work1.x=5 , work1.y=6) و (work2.x=7,work2.y=8) و آن ها رابه Person.Works اضافه می کنم، در دیتابیس در فیلدی به نام MyWorks مقدار "5-6,7-8" ذخیره شود و دوباره وقتی می خواهم person.Works را بخوانم، مقادیر فیلد Myworks که string است، split شود و در لیستی از work قرار گیرد. این کدها را در مدلم نوشتم. آیا درسته؟


public class Person
{
public int PersonId { get; set; }
public string MyWorks { get; set; }
[NotMapped]
public List<Work> Works
{
get
{
List<Work> returnedWorks = new List<Work>();
if (!String.IsNullOrWhiteSpace(MyWorks))
{
foreach (var work in MyWorks.Split(',').ToList())
{
Work newWork = new Work();
newWork.x = work.Split('-')[0];
newWork.y = work.Split('-')[1];
returnedWorks.Add(newWork);
}
}
return returnedWorks;
}


set
{
string newWorks = "";
int i = 1;
foreach (var work in value)
{
newWorks += work.x + "-" + work.y;
if (i < value.Count)
{
newWorks += ",";
i++;
}
}
MyWorks = newWorks;
}
}
}

mehdin69
جمعه 02 خرداد 1393, 17:13 عصر
من که نفهمیدم چی گفتید

aliblue
جمعه 02 خرداد 1393, 19:34 عصر
یعنی جدولی به نام work نمی خواهم داشته باشم که به ازای work های هر Person چندین رکورد در آن ذخیره شود.
بلکه میخواهم یک فیلد متنی در همان جدول Person داشته باشم که بین هر work آن یک ',' بگذارم و در برنامه آن را به List<Work> و بالعکس تبدیل کنم.

noroozifar
جمعه 02 خرداد 1393, 20:09 عصر
یعنی جدولی به نام work نمی خواهم داشته باشم که به ازای work های هر Person چندین رکورد در آن ذخیره شود.
بلکه میخواهم یک فیلد متنی در همان جدول Person داشته باشم که بین هر work آن یک ',' بگذارم و در برنامه آن را به List<Work> و بالعکس تبدیل کنم.

منم نفهمیدم چه کار می خواهی بکنی ولی به نظم یک کاری مثل برگشت اطلاعات به صورت json باشه این لینک ببین http://api.jquery.com/jquery.getjson/