none
怎么更新链接表呢? RRS feed

  • 问题

  • ABC三个实体类,AB是多对多的关系。但是做成了A-C一对多,B-C也是一对多。

    更新ab比较容易,那怎么同步C这张AB多对多关系的链接表呢?

    大家能给点代码或者提示么

    2012年5月28日 16:41

答案

  • 您好,请参考以下代码:

    namespace CodeFirst
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (TestContext context = new TestContext())
                {
                    context.Database.Create();
    
                    A a = new A();
                    a.Id = 1;
                    B b = new B();
                    b.Id = 1;
                    a.bList.Add(b);
    
                    C c = new C();
                    a.cList.Add(c);
                    b.cList.Add(c);
    
                    context.aSet.Add(a);
                    context.SaveChanges();
                }
            }
        }
    
        class A
        {
            public int Id { get; set; }
            public List<C> cList { get; set; }
            public List<B> bList { get; set; }
    
            public A()
            {
                cList = new List<C>();
                bList = new List<B>();
            }
        }
    
        class B
        {
            public int Id { get; set; }
            public List<C> cList { get; set; }
            public List<A> aList { get; set; }
    
            public B()
            {
                cList = new List<C>();
                aList = new List<A>();
            }
        }
    
        class C
        {
            public int Id { get; set; }
            public A a { get; set; }
            public B b { get; set; }
        }
    
        class TestContext : DbContext
        {
            public DbSet<A> aSet { get; set; }
            public DbSet<B> bSet { get; set; }
            public DbSet<C> cSet { get; set; }
        }
    
    }


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月3日 7:58
    版主

全部回复

  • 您好,请问您用的是Linq to SQL还是Entity Framework?


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月29日 4:24
    版主
  • Entity Framework 

    大哥给我点提示吧。卡了十多小时了在这里

     Code First


    2012年5月29日 7:38
  • 您好,请参考以下代码:

    namespace CodeFirst
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (TestContext context = new TestContext())
                {
                    context.Database.Create();
    
                    A a = new A();
                    a.Id = 1;
                    B b = new B();
                    b.Id = 1;
                    a.bList.Add(b);
    
                    C c = new C();
                    a.cList.Add(c);
                    b.cList.Add(c);
    
                    context.aSet.Add(a);
                    context.SaveChanges();
                }
            }
        }
    
        class A
        {
            public int Id { get; set; }
            public List<C> cList { get; set; }
            public List<B> bList { get; set; }
    
            public A()
            {
                cList = new List<C>();
                bList = new List<B>();
            }
        }
    
        class B
        {
            public int Id { get; set; }
            public List<C> cList { get; set; }
            public List<A> aList { get; set; }
    
            public B()
            {
                cList = new List<C>();
                aList = new List<A>();
            }
        }
    
        class C
        {
            public int Id { get; set; }
            public A a { get; set; }
            public B b { get; set; }
        }
    
        class TestContext : DbContext
        {
            public DbSet<A> aSet { get; set; }
            public DbSet<B> bSet { get; set; }
            public DbSet<C> cSet { get; set; }
        }
    
    }


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月3日 7:58
    版主