【发布时间】:2017-01-07 12:47:47
【问题描述】:
好的,所以我在我的 asp.net 核心 mvc 应用程序中遇到了这种前所未有的情况。对于上下文,我的应用程序是纸牌游戏的甲板构建/共享网站(类似于 hearthpwn 或 icyveins)。我有一张桌子“卡片”在新卡片发布到游戏之前将保持不变。我还有一个表“Deck”,它将存储用户牌组并需要与 Card 表的关系。我从 asp.net 网站教程中学习 mvc,并希望继续使用 entityframeworkcore 进行所有数据库交互。所以,我的 Deck 类看起来像这样:
public class Deck
{
public int ID { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public virtual ICollection<DeckCard> DeckCards { get; set; }
}
我希望 Cards 成为 Deck 的导航属性。我不知道如何使用教程中提供的方法来完成这项工作。
第 1 点:在使用静态表时,使用 dbinitializer 并将测试数据播种到数据库是没有意义的。每个卡片行都需要一个 DeckID 属性,这是不切实际的,因为显然每张卡片都将用于多个卡片组,或者至少大多数卡片会使用。所以从逻辑上讲,这种方法需要一个动态卡片表,每次在卡片组中使用卡片时,我都会在其中创建一个新的现有卡片行。显然这不是正确的解决方案。我可以通过在甲板模型上使用字符串属性并附加 cardID 并以这种方式做一些魔术来使其工作,但那是草率而不是关系。我需要能够查询 Deck 模型的导航属性..
任何见解或提示将不胜感激。如果这个问题令人费解,我很抱歉,但我什至不知道根据我的经验要问什么;我对关系数据库和 asp.net 框架非常陌生。提前致谢!
编辑:编写新的数据模型类(DeckCard)用于连接表
public class DeckCard()
{
public int ID {get; set;}
public int DeckID {get; set;}
public int CardID {get; set;}
}
【问题讨论】:
标签: c# asp.net asp.net-mvc