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

نام تاپیک: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

  1. #1

    Question چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    سلام
    خسته نباشید
    من خودم ASP.NET MVC رو شروع کردم می‌خوام بخونم
    اما کمک هیچ کسی رو به جز شما ندارم
    من می‌خواستم یک ارتباط چند به چند رو پیاده کنم
    اما خطا می‌ده فکر کنم به خاطر اینکه هنوز مقداری برای پراپرتی User در کلاس Group ندادم این خطا به خاطر اونه اما من lazyloading رو True کردم و قبل از نام پراپرتی از کلمه virtual استفاده کردم
    واقعا نمی‌دونم مشکل چیه
    خواهشا کد من رو بررسی کنید و کد دیگه و یا راه حل دیگه نمی‌خوام. ممنون
    اینم سورس کد من:
    من می‌خوام ارتباط چند به چند رو بررسی کنم برای همین 2 تا جدول user و Group ایجاد کردم و بعد گروه‌هایی رو از طریق پراپرتی Group که مربوط به جدول user است می‌خوام اضافه کنم که خطا میده مقدار آبجکت set نشده

    من 3 تا کلاس ایجاد کردم یکیش که مربوط به پایگاه داده است
    کلاس MyDB
    کلاس User
    کلاس Group

    کلاس myDB:

    using System;using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.Entity;


    namespace WindowsFormsApplication2.Models
    {
    class MyDB:DbContext
    {
    static MyDB()
    {
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDB>());
    }
    public MyDB()
    {
    Configuration.LazyLoadingEnabled = true;
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    base.OnModelCreating(modelBuilder);
    modelBuilder.Configurations.Add(new Group.Config());
    }
    public virtual DbSet<Group> Groups { get; set; }
    public virtual DbSet<User> Users { get; set; }
    }
    }


    کلاس User:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;


    namespace WindowsFormsApplication2.Models
    {
    class User
    {
    public User()
    {
    ID = System.Guid.NewGuid();
    }
    public System.Guid ID { get; set; }
    public string Name { get; set; }
    public virtual IList<Group> Groups { get; set; }
    }
    }


    کلاس Group:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;


    namespace WindowsFormsApplication2.Models
    {
    class Group
    {
    internal class Config:System.Data.Entity.ModelConfiguration.Entit yTypeConfiguration<Group>
    {
    public Config()
    {
    HasMany(c => c.Users).WithMany(u => u.Groups).Map(c=>{
    c.ToTable("UserGroup");
    c.MapLeftKey("GroupId");
    c.MapRightKey("UserId");
    });
    }
    }
    public Group()
    {
    ID = System.Guid.NewGuid();
    }
    public System.Guid ID { get; set; }
    public string Name { get; set; }
    public virtual IList<User> Users { get; set; }
    }
    }


    و در رویداد کلیک دکمه‌ای بعد از دادن مقادیر به user و group از طریق پراپرتی Group مربوط به user خواستم گروه ها رو اضافه کنم اینم کد:

    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using WindowsFormsApplication2.Models;


    namespace WindowsFormsApplication2
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    private void btnAddNewRecord_Click(object sender, EventArgs e)
    {
    MyDB oMyDB = null;
    try
    {
    oMyDB = new MyDB();
    Group oGroup = null;
    User oUser = null;


    oGroup = new Group();
    oGroup.Name = "Group 1";
    oMyDB.Groups.Add(oGroup);


    oGroup = new Group();
    oGroup.Name = "Group 2";
    oMyDB.Groups.Add(oGroup);


    oGroup = new Group();
    oGroup.Name = "Group 3";
    oMyDB.Groups.Add(oGroup);


    oUser = new User();
    oUser.Name = "User 1";
    oMyDB.Users.Add(oUser);


    oUser = new User();
    oUser.Name = "User 2";
    oMyDB.Users.Add(oUser);


    oMyDB.SaveChanges();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    if (oMyDB!=null)
    {
    oMyDB.Dispose();
    oMyDB = null;
    }
    }
    }


    private void btnAddGroupUser_Click(object sender, EventArgs e)
    {
    MyDB oMyDB = null;
    try
    {
    Group oGroup1 = oMyDB.Groups.Where(c => c.Name == "Group 1").FirstOrDefault();
    Group oGroup2 = oMyDB.Groups.Where(c => c.Name == "Group 2").FirstOrDefault();
    User oUser1 = oMyDB.Users.Where(u => u.Name == "User 1").FirstOrDefault();


    oUser1.Groups.Add(oGroup1);
    oUser1.Groups.Add(oGroup2);
    oMyDB.SaveChanges();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    if (oMyDB!=null)
    {
    oMyDB.Dispose();
    oMyDB = null;
    }
    }
    }
    }
    }



    من


  2. #2
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    الان این mvc هست؟ خطایی که میده رو بگذارید و کدوم خط خطا داره؟. شاید لازم باشه به هر گروهی آیدی یوزر مورد نظرش رو بدید و ست کنید.

  3. #3

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    الان این mvc هست؟ خطایی که میده رو بگذارید و کدوم خط خطا داره؟. شاید لازم باشه به هر گروهی آیدی یوزر مورد نظرش رو بدید و ست کنید.





    چون باید Entity framework هم بلد می‌شدم من این کد را در windows form Application نوشتم
    عین این کد رو استاد داریوش تصدیقی هم نوشته ولی مال اون اجرا می‌شه ولی مال من خطا می‌ده خیلی عجیبه من کدهای ایشون رو عینا کپی کردم اما نشد حتی اطلاعاتی که ایشون وارد کرده من هم وارد میکنم.
    خطا:
    object refrence not set to as instance of an object

  4. #4
    کاربر دائمی آواتار parvizwpf
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    TEH
    پست
    2,919

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    میشه بگید کدوم خط؟ این ارور اروری هست که شما باید تریس کنید ببینید چه آبجکتی نال هست . روی خطی که ارور دارید F9 بزنید سپس اجرا کنید و قتی به اون خط رسید ببینید چه آبجکتی نال هست
    آخرین ویرایش به وسیله parvizwpf : سه شنبه 05 دی 1396 در 10:37 صبح دلیل: اصلاح

  5. #5

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    شما باید توی ایونت کلیک btnAddGroupUser_Click ابجکت databasecontext که توی کد شما همون MyDB هستش رو بعد از try نیو کنین که اینکارو نکردین

  6. #6

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    دوست عزیز اگر مشکلت با راه حل دوستان حل نشد بگید
    آخرین ویرایش به وسیله a.golzar66 : دوشنبه 11 دی 1396 در 13:45 عصر

  7. #7

    Question نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    نقل قول نوشته شده توسط a.golzar66 مشاهده تاپیک
    دوست عزیز اگر مشکلت حل با راه حل دوستان حل نشد بگید
    سلام
    حل نشد
    من قبلا اون رو درست کرده بودم یعنی داخل try نیوش کرده بودم اما حل نشد

  8. #8

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    کلاس های group و user و myDB رو قبل عنوان کلاس یه کلمه public بزار ببین درست میشه

  9. #9

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    سلام. چرا از junction استفاده نکردید؟؟!!

  10. #10

    نقل قول: چگونگی وارد کردن اطلاعات در جداولی که ارتباط چند به چند دارند

    کلاس های group و user و myDB رو قبل عنوان کلاس یه کلمه public بزار ببین درست میشه





    مرسی مشکلم با این روش حل شد.

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

  1. وارد کردن اطلاعات در فیلدهای خاصی از بانک
    نوشته شده توسط nadiko در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: شنبه 29 دی 1386, 17:23 عصر
  2. مشکل در وارد کردن اطلاعات در DataGridView.
    نوشته شده توسط hdv212 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 09 اردیبهشت 1386, 19:42 عصر
  3. وارد کردن اطلاعات در فیلد های جدولهای SQL-Seerver
    نوشته شده توسط rahman-bboy در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 15 خرداد 1385, 00:15 صبح
  4. مشکل در وارد کردن اطلاعات در دیتابیس!
    نوشته شده توسط M.kavyani در بخش VB.NET
    پاسخ: 8
    آخرین پست: شنبه 12 شهریور 1384, 00:06 صبح
  5. وارد کردن اطلاعات در datagrid با کد
    نوشته شده توسط javid_p84 در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: دوشنبه 09 شهریور 1383, 13:49 عصر

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

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