例如,我们有个人资料和组织。两者都有文章。
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
}
public class Profile
{
public int Id { get; set; }
public string Email { get; set; }
public virtual ICollection<Article> Articles { get; set; }
}
public class Organisation
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Article> Articles { get; set; }
}
这样,文章应该有两种父类,所以当你直接选择文章时,它应该有类似父类的东西才能访问父类。
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public int ParentId { get; set; }
public ArticleParentType Parent { get; set; }
}
答案 0 :(得分:1)
public class Article { public int Id { get; set; } public string Title { get; set; } public int ParentId { get; set; } public ArticleParentType Parent { get; set; } }
- 是否可以使用Entity Framework进行映射?
- 这样做是个好主意吗?
醇>
可能是,但不是一个好主意。底层数据库不能使用Parentid的外键。这会很慢。
- 存储此类数据的最佳做法是什么?
醇>
一个简单的方法,有2个Nullable父项,没有CascadeOnDelete:
public class Article
{
public int Id { get; set; }
public string Title { get; set; }
public virtual Profile Profile { get; set; }
public virtual Organisation Organisation { get; set; }
}
或者,您可以使用文章的继承,即class OrganisationArticle : Article {}