外键被忽略,外部实体被复制

时间:2011-10-30 19:10:46

标签: entity-framework-4 ef-code-first

我正在尝试使用Entity Framework 4 Code First。

我的(简化)模型设置如下。

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。我尝试根据名称和userId找到已存在的EntryTag。

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

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

_entryRepository.Add(entry);

现在,当我找到现有的EntryTag时,我将其设置为Entry的Tag属性。但不是重复使用EntryTag,而是添加了EntryTag(!)。我希望EF只使用Id来填写外键?或者我在这里错过了一个约定/配置?

由于

0 个答案:

没有答案