我正在尝试使用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来填写外键?或者我在这里错过了一个约定/配置?
由于