更新Entity Framework 4.1中的外键实体

时间:2011-12-14 01:21:35

标签: c# entity-framework wcf-web-api

我目前正在使用WebApi构建REST服务,后备存储正在使用EF4.1。我遇到了障碍,我无法更新外键......

2个模型类看起来像:

public class User
{
    [Key]
    public int UserId { get; set; }

    public string Name { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Gender { get; set; }

    //
    // Membership
    public Membership Membership { get; set; }
}

public class Membership: Base
{
    [Key]
    public int MembershipId { get; set; }

    public string Name { get; set; }
    public string Description { get; set; }

    public decimal Price { get; set; }

    public virtual Collection<User> Users { get; set; }
}

我的应用程序填充User对象和Membership对象,并将它们传递给以下Update方法:

public User Update(User entity)
{
    if(entity.Membership != null)
        dbContext.Memberships.Attach(entity.Membership);

    dbContext.Entry(entity).State = EntityState.Modified;

    dbContext.SaveChanges();
}

我已确认两个对象都存在于更新点,但成员资格外键永远不会持久存储到数据库中。我确定我做的事情很简单。任何见解将不胜感激。

感谢。

0 个答案:

没有答案