我有一个代码优先应用程序,它的定义如下:
public abstract class Entity
{
[Key]
public int Id { get; set; }
public DateTime CreatedOn { get; set; }
}
public class Post : Entity
{
public string Text { get; set; }
public virtual ICollection<UserObject> Likes { get; set; }
}
public class Blog : Post
{
public string Title { get; set; }
public string Content { get; set; }
}
public class Comment : Post
{
public string Content { get; set; }
public virtual Post Parent { get; set; }
}
public class UserObject : Entity
{
public string Username { get; set; }
public string Login { get; set; }
}
public class Profile : UserObject
{
public DateTime DoB { get; set; }
public string Avatar { get; set; }
public ICollection<Blog> Blogs { get; set; }
}
这个想法是:一个个人资料可以有很多博客,一篇文章(博客或评论)可以有很多赞。我想要在数据库上这样的东西:
表帖
Id
...
表配置文件
Id
...
表帖赞
Id
PostId
UserId
表简介博客
Id
UserId
BlogId
我试过但无法获得 Fluent API 来生成这些方案。我尝试了多对多关系,但是因为我的数据结构有继承,所以它不起作用。
如何在 Fluent API 中执行此操作?