mr.sirwan
پنج شنبه 28 مرداد 1395, 13:09 عصر
سلام خدمت دوستان و اساتید محترم
من داخل پروژه م از تکنولوژی EF: Code-First استفاده میکنم داخل models یک کلاس به اسم DupsOfInterLetters دارم که با کلاس User از طریق Navigation property در ارتباطه داخل این کلاس دوتا فیلد محاسباتی ایجاد کردم برای واکشی اسم کامل(نام و نام خانوادگی) User مربوطه به ترتیب زیر:
142035
حالا من داخل فرمم میخوام این کلاس DupsOfInterLetters رو به Datagridview بایند کنم که اطلاعات رو نشون بده(از جمله این دوتا فیلد محاسباتی) من داخل بدنه try-Catch عمل بایند رو انجام میدم و داخل بدنه finally ابجکت DatabaseContext رو Dispose و null میکنم به همین خاطر به ارور میخورم و ارور هم دقیقا مربوط به همین دوتا فیلد محاسباتی هستش. اینم متن ارور:
142036
که خب میدونم چی میگه و منظورش چی هستش، اما من نیاز دارم که ابجکت DatabaseContext رو Dispose کنم، همچنین به این دوتا فیلد هم نیاز شدید دارم، از متد Include داخل کوئری Linq-to-entity هم استفاده میکنم اما بازم ارور میده و تفاوتی ایجاد نمیکنه، اما با حذف کد مربوط به Dispose کردن DatabaseContext دیگه ارور نمیده و اونطوری که انتظار دارم کار میکنه، اینم کد مربوطه:
Models.DatabaseContext oDBC = null;
try
{
oDBC = new Models.DatabaseContext();
List<Models.DupsOfInterLetters> InLetters = new List<Models.DupsOfInterLetters>();
InLetters = oDBC.DupsOfInterLetters
.Include(i => i.Referraller)
.Include(i => i.Referraled)
.Where(d => d.ReferraledToEmployeeCode == frmMain.CurrentUser)
.GroupBy(grouping => grouping.LetterId).ToList()
.Select(g => g.OrderBy(o => o.Id).Last())
.OrderByDescending(l => l.Id)
.Skip((PageIndex - 1) * (PageSize))
.Take(PageSize)
.ToList();
dgvLetters.DataSource = null;
dgvLetters.DataSource = InLetters;
InLetters = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (oDBC != null)
{
oDBC.Dispose();
oDBC = null;
}
}
اگه راهنمایی کنین خیلی ممنون میشم، نیاز فوری دارم :افسرده::افسرده::افسرده:
من داخل پروژه م از تکنولوژی EF: Code-First استفاده میکنم داخل models یک کلاس به اسم DupsOfInterLetters دارم که با کلاس User از طریق Navigation property در ارتباطه داخل این کلاس دوتا فیلد محاسباتی ایجاد کردم برای واکشی اسم کامل(نام و نام خانوادگی) User مربوطه به ترتیب زیر:
142035
حالا من داخل فرمم میخوام این کلاس DupsOfInterLetters رو به Datagridview بایند کنم که اطلاعات رو نشون بده(از جمله این دوتا فیلد محاسباتی) من داخل بدنه try-Catch عمل بایند رو انجام میدم و داخل بدنه finally ابجکت DatabaseContext رو Dispose و null میکنم به همین خاطر به ارور میخورم و ارور هم دقیقا مربوط به همین دوتا فیلد محاسباتی هستش. اینم متن ارور:
142036
که خب میدونم چی میگه و منظورش چی هستش، اما من نیاز دارم که ابجکت DatabaseContext رو Dispose کنم، همچنین به این دوتا فیلد هم نیاز شدید دارم، از متد Include داخل کوئری Linq-to-entity هم استفاده میکنم اما بازم ارور میده و تفاوتی ایجاد نمیکنه، اما با حذف کد مربوط به Dispose کردن DatabaseContext دیگه ارور نمیده و اونطوری که انتظار دارم کار میکنه، اینم کد مربوطه:
Models.DatabaseContext oDBC = null;
try
{
oDBC = new Models.DatabaseContext();
List<Models.DupsOfInterLetters> InLetters = new List<Models.DupsOfInterLetters>();
InLetters = oDBC.DupsOfInterLetters
.Include(i => i.Referraller)
.Include(i => i.Referraled)
.Where(d => d.ReferraledToEmployeeCode == frmMain.CurrentUser)
.GroupBy(grouping => grouping.LetterId).ToList()
.Select(g => g.OrderBy(o => o.Id).Last())
.OrderByDescending(l => l.Id)
.Skip((PageIndex - 1) * (PageSize))
.Take(PageSize)
.ToList();
dgvLetters.DataSource = null;
dgvLetters.DataSource = InLetters;
InLetters = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (oDBC != null)
{
oDBC.Dispose();
oDBC = null;
}
}
اگه راهنمایی کنین خیلی ممنون میشم، نیاز فوری دارم :افسرده::افسرده::افسرده: