gpt4 book ai didi

asp.net-mvc - 如何首先使用EF核心代码制作连接表

转载 作者:行者123 更新时间:2023-12-04 17:16:23 25 4
gpt4 key购买 nike

我有这三个模型:

public class Card
{
public int ID { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public string Image { get; set; }
}

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;}
}

public class DeckCard
{
public int ID {get; set;}
public int DeckID {get; set;}
public int CardID {get; set;}
}

我想本质上使用 DeckCard 模型作为连接表。我需要能够在我的 DecksController/Index View 中填充它。任何人都可以给我指导或指出正确的方向吗?

请注意,卡片表是一个静态表(我不知道这是否是它的正确术语,但它会随着游戏当前拥有的任何卡片进行填充和更改(这是一个甲板构建网站))。

最佳答案

第一的。 您不需要为一对多关系创建模型(DeckCard),以便 EF 在您的数据库中自动创建此表。

第二。 添加或覆盖 OnModelCreating DbContext 类中的方法例如:

MyApplicationDbContext.cs

 public class MyApplicationDbContext : DbContext
{
public DbSet<Card> Cards { get; set; }

public DbSet<Deck> Decks { get; set; }

// This is Model Builder
protected override void OnModelCreating(DbModelBuilder builder)
{
modelBuilder.Entity<Card>()
.HasRequired<Card>(_ => _.Card)
.WithMany(_ => _.Deck);

}

}

DecksController.cs
 public ActionResult Index()
{
var model = context.Card.AsNoTracking().Include(_ => _.Decks).ToList();

return View(model);
}

对于使用 的连接查询热切加载 我用 Include();
另外,请参见下面的链接:

Getting more performance out of Entity Framework 6

Entity Framework Loading Related Entities

Configure One-to-Many Relationship

Relationships In EF Core

关于asp.net-mvc - 如何首先使用EF核心代码制作连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41535157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com