私は Entity Framework を学んでおり、数年前に ADO.NET を使用して作成したナレッジ ベース アプリケーションを再実装することにしました。
Article、UserAccount、Rating の 3 つのエンティティがあります。
Article と UserAccount は一目瞭然です。評価は、可能な評価を含む表です。非常に良い = 5、良い = 4、平均 = 3、悪い = 2、非常に悪い = 1。
記事を閲覧する際、その記事の平均評価を表示したい。ユーザーがその記事に対して既に評価を提供している場合、再度評価することは許可されません。
次のようなものを使用して、流暢な API を使用して 2 つのエンティティ間のルックアップ テーブルを正常に作成できました。
HasMany(a => a.Tags)
.WithMany(t => t.Articles)
.Map(x =>
{
x.ToTable("ArticleTags");
x.MapLeftKey("ArticleId");
x.MapRightKey("TagId");
});
3 つのテーブル間のルックアップ テーブルを作成するか、作成を開始するのに苦労しています。
ArticleUserRatings (ArticleId、UserAccountId、RatingId)
ArticleUserRating というエンティティを作成できます
public class ArticleUserRating
{
public int ArticleId { get; set; }
public int UserAccountId { get; set; }
public int RatingId { get; set; }
}
しかし、これは私には快適ではありません。この関係タイプのためのエンティティです。
エンティティを作成せずにこの関係を定義する方法はありますか?
どんなガイダンスでも大歓迎です。