Как мне соединить две мои модели, чтобы карты могли быть введены в колоду? - PullRequest
0 голосов
/ 22 января 2019

У меня 2 модели, карта и колода. Пользователь добавляет новую карту в коллекцию (индексную страницу), и пользователь может создать новую колоду. Как мне работать с моими моделями, чтобы пользователь мог положить карту из коллекции в колоду?

Как выглядят мои модели? Я предполагаю, что мне нужно привязать карту к колоде и т. Д., Но не знаю, как это сделать. Может кто-нибудь уточнить, что мне нужно делать и как это сделать?

Я создал 2 модели колоды и карты и сделал колоду типом данных, на который ссылается модель карты.

public class Card
{
    public int Id { get; set; }
    public string Name { get; set;  }
    public string Attribute { get; set; }
    public int Level { get; set; }
    public string Type { get; set; }
    public int ATK { get; set; }
    public int DEF { get; set; }
    public Deck Deck {get; set;}
    public int Deck {get; set;}
}

public class Deck
{  
    public int DeckId {get; set;}
    public string DeckName {get; set;}  
}

Это колода Yu-Gi-Oh.

Ожидаемые результаты: карта из коллекции вставляется в колоду. Представьте, что при просмотре индекса колоды он будет заполнен карточками из коллекции, выбранной пользователем.

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Примерно так могло бы работать, используя и внешние ключи Card и Deck в качестве первичного ключа для Relationships

 public class Card
        {
            public Card()
            {
                DeckCardRelationships = new HashSet<DeckCardRelationship>();
            }
            public int Id { get; set; }
            public string Name { get; set; }
            public string Attribute { get; set; }
            public int Level { get; set; }
            public string Type { get; set; }
            public int ATK { get; set; }
            public int DEF { get; set; }

            public virtual Deck Deck { get; set; }
            public virtual ICollection<DeckCardRelationship> DeckCardRelationships { get; set; }


        }

        public class DeckCardRelationship
        {
            public int CardId { get; set; }
            public int DeckId { get; set; }

            public virtual Card Card { get; set; }
            public virtual Deck Deck { get; set; }
        }

        public class Deck
        {
            public Deck()
            {
                DeckCardRelationships = new HashSet<DeckCardRelationship>();
            }

            public int Id { get; set; }
            public string DeckName { get; set; }


            public virtual ICollection<DeckCardRelationship> DeckCardRelationships { get; set; }
        }
0 голосов
/ 22 января 2019

РЕДАКТИРОВАТЬ:

Добавить "средний" объект

public class CardsInDeck
{  
    public int DeckId { get; set; }
    public int CardId { get; set; }
}

Добавить коллекцию "middle" в модель колоды

public class Deck
{  
    public ICollection<CardsInDeck> Cards { get; set; }
}

Добавить коллекцию "middle"'в карточную модель

public class Deck
{  
    public ICollection<CardsInDeck> Decks { get; set; }
}

Здесь вы имеете базовое отношение многие ко многим .В основном 2 отношения «один ко многим» (сущность колода-середина, сущность карточка-середина).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...