这是我的模型课。
public class Lead
{
private readonly ObservableCollection<String> m_tags = new ObservableCollection<string>();
public int LeadId { get; set; }
public string Title { get; set; }
public ObservableCollection<String> Tags { get { return m_tags; } }
}
实体框架是否提供了一种使用模型优先或代码优先来表示这一点的方法?
编辑:我正在寻找一种方法来做到这一点而不改变模型的公共 API。事实上,下游开发人员不应该看到某种标签表。
由于您的模型必须以关系方式表示,因此您只能使用原始类型(在 SQL DB 中具有等效类型)或实体定义中的其他实体 - 这意味着标签由它们自己的实体表示。在您的情况下,使用代码优先方法会是这样的:
public class Lead
{
public int LeadId { get; set; }
public string Name { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public string Name { get; set; }
}
public class SomeContext : DbContext
{
public DbSet<Lead> Leads { get; set; }
public DbSet<Tag> Tags { get; set; }
}
这(默认情况下)将在数据库中表示为表 Leads、表 Tags 和关系表 LeadTags,其中仅包含{LeadId, TagId}
pairs.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)