私はEntityFrameworkとC#/。Netを初めて使用し、TPH継承モデルを作成しようとしていますが、そうすべきかどうかわからないので、そうでない場合はアドバイスしてください。
モデルは次のとおりです。
public abstract class Vote
{
public int VoteID { get; set; }
public int UserID { get; set; }
public bool Value { get; set; }
public DateTime DateCreated { get; set; }
public User User { get; set; }
}
public class ProjectVote_ : Vote
{
public int ProjectID { get; set; }
public virtual Project Project { get; set; }
}
public class CommentVote_ : Vote //There are three more like this, votes for different hings
{
public int CommentID { get; set; }
public virtual Comment Comment { get; set; }
}
これでプロジェクトモデル(コメントとモデルは似ています)
public class Project
{
public int ProjectID { get; set; }
public string Title { get; set; }
public virtual ICollection<Vote> Vote { get; set; }
}
何が起こるかというと、ICollectionは、私が定義したProjectIDを使用する代わりに、Voteテーブルの外部キーとしてデータベース列Project_ProjectIDを作成します(私は思います)。どうすれば修正できますか、または別の方法でモデル化する必要があります。流暢なAPIがそれを修正する方法である場合、私はそれを行う方法がわかりません。
最終的には、1つのテーブルを使用して5種類の投票を保存できるようにしたいと思います。