نمایش نتایج 1 تا 2 از 2

نام تاپیک: دو ارتباط یک به چند (بیش از یک ارتباط) بین دو جدول Users,Pages

  1. #1

    دو ارتباط یک به چند (بیش از یک ارتباط) بین دو جدول Users,Pages

    اساتید عزیز خسته نباشید
    بنده با یه مشکلی مواجه شدم.در تعریف کلاس ها به روش EF Code First به حالت زیر مشکلی که پیش میاد جدول Pages چهار تا کلید خارجی داره! در صورتی که باید دو تا داشته باشه.آیا در نحوه تعریف بنده ایرادی هست؟
    در حالت کلی میخوام کاربری که رکورد رو ثبت کرده و کاربری که رکورد رو ویرایش کرده رو در جدول Pages داشته باشم

    تعریف کلاس Pages:

    public class Page
    {
    internal class Configuration : System.Data.Entity.ModelConfiguration.EntityTypeCo nfiguration<Page>
    {
    public Configuration()
    {
    HasRequired(current => current.ApplicationInsUser)
    .WithMany(user => user.InsertedPages)
    .HasForeignKey(current => current.ApplicationInsUserId)
    .WillCascadeOnDelete(false);
    HasOptional(current => current.ApplicationEditUser)
    .WithMany(user => user.EditedPages)
    .HasForeignKey(current => current.ApplicationEditUserId)
    .WillCascadeOnDelete(false);
    }
    }
    public Page()
    {
    // CreateTime = DateTime.Now;
    }
    [Key]
    public int id { get; set; }
    public string Onvan { get; set; }
    [System.Web.Mvc.AllowHtml]
    public string Content { get; set; }
    public string ApplicationInsUserId { get; set; }
    public virtual ApplicationUser ApplicationInsUser { get; set; }
    public string ApplicationEditUserId { get; set; }
    public virtual ApplicationUser ApplicationEditUser { get; set; }
    }
    }

    و همچنین کلاس Users:

    public virtual ICollection<Page> InsertedPages { get; set; }
    public virtual ICollection<Page> EditedPages { get; set; }


    وقتی فقط InsertUser رو به عنوان کلید خارجی تعریف میکنم مشکلی نیست و دیتابیس خیلی خوب و با یک کلید خارجی جنریت میشه اما وقتی EditUser رو هم اضافه میکنم کلید خارجی بجای 2 تا 4 تا ایجاد میشه !!!!

  2. #2

    نقل قول: دو ارتباط یک به چند (بیش از یک ارتباط) بین دو جدول Users,Pages

    در EF برای تعریف کلید خارجی خودتان نباید فیلدی درست کنید. این فیلدها باید توسط EF ایجاد بشه. همینکه مشخص کنید کدوم جدول با کدوم جدول بر اساس چه متغیری رابطه داره کافیه. EF خودش بر اساس تنظیماتی که بهش معرفی می کنید فیلدهای مربوط به کلیدهای خارجی رو میسازه. شما در کد هیچوقت اون رو نمیبینید. بهش احتیاجی هم ندارید.

تاپیک های مشابه

  1. ارتباط بین سه جدول وعملیات بر روی آنها با استفاده از linq؟
    نوشته شده توسط bazikadeh در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 6
    آخرین پست: دوشنبه 19 آبان 1393, 18:43 عصر
  2. سوال: ارتباط بین 3 جدول از طریق LINQ
    نوشته شده توسط mohammadmoien007 در بخش C#‎‎
    پاسخ: 0
    آخرین پست: دوشنبه 10 شهریور 1393, 02:18 صبح
  3. نحوه ی شیر کردن اینترنت با یک کامپیوتر به چند کامپیوتر از طریق شبکه
    نوشته شده توسط ALIMAHDE54 در بخش تالار های مرتبط با شبکه و امنیت
    پاسخ: 2
    آخرین پست: پنج شنبه 05 اردیبهشت 1392, 11:17 صبح
  4. سوال: فرستادن همزمان فایل به چند نفر از طریق بلوتوث
    نوشته شده توسط navidkhalilian در بخش C#‎‎
    پاسخ: 7
    آخرین پست: جمعه 23 مهر 1389, 00:11 صبح
  5. سوال: عدم نمایش بیش از 10.000 رکورد در جدول
    نوشته شده توسط m-razavi در بخش Access
    پاسخ: 1
    آخرین پست: شنبه 08 اسفند 1388, 07:55 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •