次のように定義されたコード最初のアプリケーションがあります。
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 でこれを行う方法は?