ورود

View Full Version : برطرف شدن خطا The relationship between the two objects ... در EF



hosseinrasouli
پنج شنبه 09 بهمن 1393, 15:13 عصر
سلام . من هنگام ذخیره شی کلاسم با این ارور برخوردم . لطفا راهنمایی کنید

از این قسمت خطا میگیره :

arzyabi.ShakhesFarhi = item


data.Arzyabi arzyabi = new data.Arzyabi();
arzyabi.Tozihat_takmili = txt_tozihat.Text;
arzyabi.Eghdamat_anjam_shodeh = txt_eghdamat.Text;
arzyabi.Emtiaz_hadaksar = input_hadaksar.Value.ToString();
arzyabi.Emtiaz_moktasebe = input_moktasebeh.Value.ToString();
arzyabi.Date = date_get(dateTimePicker1.SelectedDateInStringPersi an);

arzyabi.User = user;
var q = context.ShakhesFarhis.Where(s => s.Name==cmb_shakhesF.Text);
foreach (var item in q) arzyabi.ShakhesFarhi = item;

context.Arzyabis.AddObject(arzyabi);
context.SaveChanges();
context.Connection.Close();
load_data();


خطایی که می گیره :


The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects



تصویر Context :



128014

hosseinrasouli
جمعه 10 بهمن 1393, 07:21 صبح
خطا The relationship between the two objects ... در EF

hosseinrasouli
جمعه 10 بهمن 1393, 17:24 عصر
up...................

SabaSabouhi
شنبه 11 بهمن 1393, 09:25 صبح
سلام
این خطا رو معمولاً وقتی می‌گیری که یکی از Objectها رو از همون Contextای که باز کردی نگرفته باشی.
برای اجتناب از این خطا سعی کن Context رو توی یه Using باز کنی و کل کدت رو هم اون تو بنویسی.

در ضمن، translate.google.com رایگان در اختیار شما هست تا از پینگلیش استفاده نکنی.
به نظر من برای یه کارشناس کامپیوتر زیبنده نیست که از پینگلیش استفاده کنه.

صبا صبوحی

hosseinrasouli
شنبه 11 بهمن 1393, 21:26 عصر
سلام مهندس . ممنون که جواب دادین ولی مشکل حل نشد . ضمناً در برنامه از یک ContextContainer استفاده کردم.
using هم کردم ول باز همون خطا میده

using (var model = new data.ContextContainer())
{

data.Arzyabi arzyabi = new data.Arzyabi();
arzyabi.Tozihat_takmili = txt_tozihat.Text;
arzyabi.Eghdamat_anjam_shodeh = txt_eghdamat.Text;
arzyabi.Emtiaz_hadaksar = input_hadaksar.Value.ToString();
arzyabi.Emtiaz_moktasebe = input_moktasebeh.Value.ToString();
arzyabi.Date = date_get(dateTimePicker1.Text);


var q = model.ShakhesFarhis.Where(s => s.Name == cmb_shakhesF.Text);
foreach (var item in q) arzyabi.ShakhesFarhi = item;
arzyabi.UserId = user.Id;
arzyabi.Ostan = user.Ostan;
model.Arzyabis.AddObject(arzyabi);
model.SaveChanges();
model.Connection.Close();
load_data();
}



تصویر خطا :
128072


























لطفاً راهنمایی کنید .........:ناراحت:

hosseinrasouli
شنبه 11 بهمن 1393, 21:57 عصر
مشکل رو پیدا کردم

arzyabi.Ostan = user.Ostan;

شی user رو که پاس میدادم به فرم جدید و از خصوصیت های به طور مستقیم برای کلاس جدید استفاده میکردم خطا میگرفت
به این صورت اصلاح شد .

foreach (var item in Context.Ostans)
if (item.Id == user.Ostan.Id) arzyabi.Ostan = item;