Обновление сущностей внешнего ключа в Entity Framework 4.1 - PullRequest
2 голосов
/ 14 декабря 2011

В настоящее время я создаю службу REST с использованием WebApi, а резервное хранилище использует 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 и передает их обоим в следующий метод обновления:

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

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

    dbContext.SaveChanges();
}

Я подтвердил, что оба объекта присутствуют в момент обновления, но внешний ключ членства никогда не сохраняется в базе данных. Я уверен, что делаю что-то простое неправильно. Любая идея будет принята с благодарностью.

Спасибо.

...