Внешние ключи игнорируются, вместо этого дублируется внешняя сущность - PullRequest
0 голосов
/ 30 октября 2011

Я экспериментирую с первым кодом Entity Framework 4.

У меня (упрощенные) модели настроены так:

public class Entry
{
    public int Id { get; set; }
    [Required]
    public virtual EntryTag Tag { get; set; }
    [Required]
    public int TagId { get; set; }  
    [Required]
    public string UserId { get; set; }
}

public class EntryTag
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public string Color { get; set; }
    [Required]
    public string UserId { get; set; }
}

Пользователь может создать новую запись, ив то же время создать или повторно использовать EntryTag.Я пытаюсь найти уже существующий EntryTag на основе имени и идентификатора пользователя.

var tag = ResolveTag(entry.Tag.Name, entry.UserId);          

entry.Tag = tag == null ? AddTagBasedOn(entry) : tag;       

_entryRepository.Add(entry);

Теперь, когда я нахожу существующий EntryTag, я устанавливаю его в свойство Tag Entry.Но вместо повторного использования EntryTag, EntryTag добавляется (!).Я надеялся, что EF просто использует Id для заполнения внешнего ключа?Или я пропускаю соглашение / конфигурацию здесь?

Спасибо

...