PDA

View Full Version : سوال: مقداردهی به یک متغیر iset



dj-mohammad
جمعه 21 شهریور 1393, 11:31 صبح
سلام بر اساتید گرامی
من در برنامه خود یک کلاس به نام راننده و یک کلاس به نام time دارم و از entity framework برای ارتباط با دیتابیس استفاده کرده ام.
در کلاس راننده یک iset<time> new کرده ام. حالا میخواهم که یک time را به کلاس راننده خود اضافه کنم . الان هم راننده را از دیتابیس خوانده ام و هم یک نمونه از time ساخته ام. الان چگونه به فیلد time در کلاس راننده دسترسی پیدا کنم؟؟؟؟؟؟
با این کد راننده انتخاب شده از دیتاگرید را خوانده ام.
الان میخواهم که به فیلد time این راننده مقدار بدم. چگونه میتوانم اینکار را انجام دهم؟؟؟؟


string value = AddTimeGridView.Rows[AddTimeGridView.CurrentRow.Index].Cells[2].Value.ToString();

var QueryIdDriver = (from Search in Context.Drivers
where (Search.InternationalCode == value)
select Search.Time).ToList();

Mahmoud.Afrad
جمعه 21 شهریور 1393, 12:39 عصر
می بایست شئ driver مورد نظر رو بگیری و به لیست timeهای اون شئ جدید اضافه کنی.

string value = AddTimeGridView.CurrentRow.Cells[2].Value.ToString();

var QueryIdDriver = (from Search in Context.Drivers
where (Search.InternationalCode == value)
select Search).SingleOrDefault();

if (QueryIdDriver != null)
{
QueryIdDriver.Time.Add(time_obj);
}

time_obj نمونه ای هست که میخواهید اضافه کنید.

dj-mohammad
جمعه 21 شهریور 1393, 13:03 عصر
می بایست شئ driver مورد نظر رو بگیری و به لیست timeهای اون شئ جدید اضافه کنی.

string value = AddTimeGridView.CurrentRow.Cells[2].Value.ToString();

var QueryIdDriver = (from Search in Context.Drivers
where (Search.InternationalCode == value)
select Search).SingleOrDefault();

if (QueryIdDriver != null)
{
QueryIdDriver.Time.Add(time_obj);
}

time_obj نمونه ای هست که میخواهید اضافه کنید.
در هنگام اجرا به چنین اروری برخوردم
Additional information: Object reference not set to an instance of an object.

dj-mohammad
جمعه 21 شهریور 1393, 20:40 عصر
با سلام خدمت اساتید عزیز
من یک کلاس به نام راننده و یک کلاس به نام زمان درست کرده ام. بعد با استفاده از entity framework از آن ها جدول درست کرده ام. از کلاس زمان یک نوع iset در کلاس راننده درست کرده ام. یعنی اینکه راننده ممکن است در روز چند زمان مختلف رفت و آمد داشته باشد. حاا وقتی که یک نوع از کلاس زمان را به آن اختصاص میدهم در زمان اختصاص نوع بعدی نوع قبلی وابستگی خود را به آن راننده از دست میدهد و آی دی آن null میشود
خواهشا کمک کنید خیلی گیرم
ممنون

Mahmoud.Afrad
جمعه 21 شهریور 1393, 22:02 عصر
کد کلاسها رو بزارید.

dj-mohammad
جمعه 21 شهریور 1393, 22:19 عصر
public class Time : Entity
{



public String ArrivalTime { get; set; }
public String DepartureTime { get; set; }
public String Date { get; set; }
public Int32 Delay { get; set; }
public String DelayReason { get; set; }
public Int32 EstimatedSpeed { get; set; }
}

public class Driver : Person
{
public ISet<Bus> Bus { get; set; }
public ISet<Time> Time { get; set; }
}

Mahmoud.Afrad
جمعه 21 شهریور 1393, 23:22 عصر
لیست Time باید از نوع virtual باشه

public virtual ISet<Time> Times { get; set; }