0

我一直在 ASP.NET MVC3 应用程序中使用代码优先技术。这是非常基本的问题,即如何更新导航属性。以下是详细代码。

    public class Destination
    {
        public int ID {get;set;}
       // some other properties
        public Country {get;set;}
    }

    public class Country
    {
     int ID {get;set;}
     string Name {get;set;}
    }

    //i have simple structure as above. when i go to update destination entity. Country is not getting updated.even i tried following:

    _db.Entry(Destination.Country).State = System.Data.EntityState.Modified;
    _db.Entry(Destination).State = System.Data.EntityState.Modified;
    //_db.ChangeTracker.DetectChanges();
    _db.SaveChanges();

其次,当我去添加它工作正常。是否需要明确要求外键关系?

4

1 回答 1

0

您可以通过三种方式添加实体:

调用Add()DbSet 上的方法。这会将实体置于已添加状态,这意味着它将在下次SaveChanges()调用时插入到数据库中。

context.Destination.Add(yourDestination);

将其状态更改为已添加。

context.Entry(yourDestination).State = EntityState.Added;

通过将新实体连接到已被跟踪的另一个实体来将新实体添加到上下文中

context.Destination.Country.Add(yourCountry);

问候。

于 2012-06-03T11:32:04.953 回答