0

この質問のタイトルが正確にわかりませんでした。これが私が解決しようとしている問題です。

Fight と Fighter という多対多の関係を持つ 2 つのテーブルがあります。ファイターは多くのファイトに参加でき、ファイトには多くのファイター (2 人のファイター) が含まれます。これらは問題なくマッピングされていますが、私がやりたいのは、ファイト テーブルに 2 人のファイターのどちらが勝ったかを設定できる列を作成することです。これに対する最善のアプローチは何ですか?

わからないことがあれば、もっと分かりやすく説明していきますのでよろしくお願いします。

public class Fight
{
    [Key]
    public int FightId { get; set; }

    [Key, ForeignKey("FightCard")]
    public int CardId { get; set; }

    public virtual ICollection<Fighter> Fighters { get; set; }

    }

public class Fighter
{
    [Key]
    public int FighterID { get; set; }

    [Required]
    [DisplayName("First Name")]
    public string FirstName { get; set; }

    [Required]
    [DisplayName("Last Name")]
    public string LastName { get; set; }

    [DisplayName("Nickname")]
    public string NickName { get; set; }

    [Required]
    public string Nationality { get; set; }

    public static String[] WeightClassOptions
    {
        get
        {
            return new String[] { "Heavyweight", "Light Heavyweight", "Middleweight", "Welterweight", "Lightweight", "Featherweight", "Bantamweight", "Flyweight" };
        }
    }

    [DisplayName("Weight Class")]
    public string WeightClass { get; set; }

    public string Height { get; set; }

    [Required]
    [DisplayName("Date of Birth")]
    [DataType(DataType.Date)]
    public DateTime DateOfBirth { get; set; }

    // Fight Record:
    public int Wins { get; set; }
    public int Loss { get; set; }
    public int Draw { get; set; }
    public int NoContest { get; set; }

    public String Picture { get; set; }

    public virtual ICollection<Fight> Fight { get; set; }
4

3 に答える 3

1

idWinnerまたは、勝った戦闘機のIDへの参照であるをテーブルに追加することもできFightます。これにより、別のテーブルを作成する必要がなくなります。winner勝った戦闘機に応じて1または2を含むフィールドを追加することもできますが、これは厄介です

于 2013-01-24T23:45:52.000 に答える
1

FightからとFighter呼ばれるまで1対多の関係を作成できますWinner

于 2013-01-24T23:42:51.350 に答える
1

FightersテーブルとFightsテーブルの間の多対多の関係をマップするジャンクションテーブルが必要です。このジャンクションテーブルと呼びましょうFightersFights

ではFightersFights、各参加について、戦いが勝ったか負けたかを示す列を追加できます。このようなもの

| Fighters |         | FightersFights |             | Fights |
------------         ------------------             ----------
| Id       |         | FighterId      |             | Id     |
| Name     | 1     n | FightId        | n         1 | Name   |
|          |---------| Winner         |-------------|        |
于 2013-01-24T23:43:17.870 に答える