更新 Entity Framework 4.1 中的外键实体

发布于 2024-12-21 02:40:38 字数 1070 浏览 2 评论 0原文

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

这两个模型类如下所示:

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();
}

我已经确认这两个对象在更新时都存在,但成员资格外键永远不会保留到数据库中。我确信我正在做一些简单的错误。任何见解将不胜感激。

谢谢。

I'm currently building a REST service using WebApi and the backing store is using EF4.1. I've run into a snag whereby I cannot update the foreign key...

The 2 model classes look like:

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; }
}

My application populates both the User object and the Membership object and passes them both to the following Update method:

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

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

    dbContext.SaveChanges();
}

I've confirmed that both objects are present at the point of updating, but the membership foreign key is never persisted to the database. I'm certain I'm doing something simple wrong. Any insight would be greatly appreciated.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文