View Full Version : ثبت اطلاعات در جدول وسط رابطه ی چند به چند در EFCodeFirst
IR-Developer
یک شنبه 30 شهریور 1393, 19:02 عصر
سلام در رابطه ی چند به چند ایجاد شده در EFCodeFirst به کمک FluentApi جدول وسط فقط در دیتابیس ایجاد میشه و ما در پروژه کلاسی برای دسترسی به متدها جهت درج اطلاعات نداریم . چطور میشه توی این نوع جدول اطلاعات درج کرد ؟
rezaei_y
دوشنبه 31 شهریور 1393, 07:08 صبح
var tag1 = new Tag { Name = "Tag1" };
context.Tags.Add(tag1);
var post1 = new BlogPost { Title = "Title...1", Body = "Body...1" };
context.BlogPosts.Add(post1);
post1.Tags.Add(tag1);//jadval vaset
بیشتر (http://www.dotnettips.info/post/1235/%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C-%D8%AA%D9%81%D8%B5%DB%8C%D9%84%DB%8C-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-many-to-many-%D8%AF%D8%B1-ef-code-first)
IR-Developer
دوشنبه 31 شهریور 1393, 11:28 صبح
توی ویندوز اپلیکیشن امتحان کردم جواب میده ولی نمیدونم چرا توی پروژه ی خودم در mvc هرکار میکنم توی جدول وسط ثبت نمیشه ولی خطایی هم نمیده !
این کدم هست :
var postitem = blpost.Find(1);
var catitem = new Categories { CatName = "qqqq" };
dbContext.Category.Add(catitem);
postitem.Categories.Add(catitem);
dbContext.SaveChanges();
IR-Developer
دوشنبه 31 شهریور 1393, 16:42 عصر
بخاطر اینکه از Repository بجای Context مستقیم استفاده میکردم درج نمیشد . دلیلش را نمیدونم ولی به روش مستقیم جواب داد .
برای من فقط به روش زیر در جدول وسط ذخیره میکنه :
var tag1 = context.tag.find(1);
var post1 = context.post.find(1);
post1.Tags.Add(tag1);//jadval vaset
context.savechanges();
به اون روشی که شما مثال زدید اصلا جواب نمیده . یعنی حتما باید فیلدها از قبل در دیتابیس ثبت شده باشه تا بشه در جدول وسط id هاشون را درج کرد ؟
شما خودتون اینطوری امتحان کردید ؟
rezaei_y
دوشنبه 31 شهریور 1393, 19:00 عصر
نه لزومی نداره حتما ثبت شده باشه
Section mySection = _sectionService.Find(SectionId);
var newFAQ = new FAQ
{
AddedDate = DateAndTime.GetDateTime(),
Question = model.Question.ToSafeHtml()
};
newFAQ.Sections = new List<Section>();
newFAQ.Sections.Add(mySection);
البته زمانی که new میکنی اگه رکوردت از قبل وجود داره حتما توسط find رکوردت رو بدست بیار وگرنه دوباره اضافه میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.