Я экспериментирую с первым кодом 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 для заполнения внешнего ключа?Или я пропускаю соглашение / конфигурацию здесь?
Спасибо