У меня есть класс PromoCard и List<PromoCard> PromoCards. Можно ли сопоставить элемент массива списка в модели сущности?
Это мой список:
public static List<PromoCard> PromoCards = new List<PromoCard>
{
new PromoCard()
{
Id = 1,
Crystal = 4500,
Price = 100
},
new PromoCard()
{
Id = 2,
Crystal = 24000,
Price = 500
},
new PromoCard()
{
Id = 3,
Crystal = 50000,
Price = 1000
},
};
public class PromoCard
{
[Key]
public int Id { get; set; }
public int Crystal { get; set; }
public int Price { get; set; }
}
А это моя модель:
public class BonusCard
{
[Key]
public int Id { get; set; }
public string User_id { get; set; }
[ForeignKey("User_id")]
public virtual ApplicationUser User { get; set; }
public int PromoCard_id { get; set; }
// is there way to link
[ForeignKey("PromoCard_id")]
public virtual PromoCard PromoCard { get; set; }
}





Все, что мне нужно было, это изменить геттер свойства PromoCard и добавить к нему аннотацию NotMapped.
public class BonusCard
{
[Key]
public int Id { get; set; }
public string User_id { get; set; }
[ForeignKey("User_id")]
public virtual ApplicationUser User { get; set; }
public string Code { get; set; }
public DateTime CreationDate { get; set; } = (DateTime)SqlDateTime.MinValue;
public DateTime UsageDate { get; set; } = (DateTime)SqlDateTime.MinValue;
public int? Player_id { get; set; } = null;
[ForeignKey("Player_id")]
public virtual Player Player { get; set; }
public int PromoCard_id { get; set; }
[NotMapped]
public PromoCard PromoCard { get { return PromoCards[PromoCard_id]; } set { } }
}
Каждая таблица в базе данных представляет собой объект списка в корне Entity. Итак, у вас есть dbContext с List<BonusCard>. Таким образом, вы можете создать новую таблицу в базе данных PromoCard с тремя столбцами Id, Crystal и Price. Таким образом, вы можете просто вручную добавить новую таблицу в базу данных, а затем обновить сопоставление из базы данных в С#, что создаст новый класс PromoCard.