ASP.NETMVC如何通过Id从另一个模型获取名称?
创始人
2024-09-19 06:30:28
0

假设我们有两个模型,一个是“Person”,包含Id和Name属性,另一个是“Order”,包含PersonId属性,表示订单属于哪个人。我们想要在订单列表中显示每个订单所属人员的名称而不是Id。

首先,在Order模型中添加Person属性:

public class Order
{
    public int Id { get; set; }
    public int PersonId { get; set; }
    public string OrderNumber { get; set; }

    public virtual Person Person { get; set; }
}

这里的“virtual”关键字表示这是一个虚属性,会在运行时自动加载。接下来,在Person模型中添加Orders属性:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }

    public virtual ICollection Orders { get; set; }
}

这里的“ICollection”关键字表示这是一个集合属性,表示一个人可能有多个订单。接下来,在DbContext中重写OnModelCreating方法,定义一个关系:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity()
        .HasRequired(o => o.Person)
        .WithMany(p => p.Orders)
        .HasForeignKey(o => o.PersonId);
}

这里的“HasRequired”表示Person是必需的,而“WithMany”表示Person可以拥有多个Order。最后,在我们的Controller中,我们可以使用Include方法来加载Person属性:

public ActionResult Index()
{
    var orders = db.Orders.Include(o => o.Person).ToList();
    return View(orders);
}

现在,我们可以在View中像这样访问Person的Name属性:

@foreach (var order in Model)
{
    
        @order.OrderNumber
        @order.Person.Name
    
}

这样就可以显示每个订单所属人员的名称了。

相关内容

热门资讯

一分钟揭秘!奇迹免费脚本辅助工... 一分钟揭秘!奇迹免费脚本辅助工具,腾讯欢乐卡五星辅助器,详细脚本(有挂详情)1、腾讯欢乐卡五星辅助器...
研究成果!雀友会广东潮汕bus... 研究成果!雀友会广东潮汕bus,九哥玩挂,详细插件(有挂头条)1、完成雀友会广东潮汕bus有辅助插件...
热门推荐!上饶辅助设备出租,河... 热门推荐!上饶辅助设备出租,河南微乐小程序辅助器免费,详细插件(有挂详情)1、河南微乐小程序辅助器免...
终于清楚!多乐游戏脚本,微信中... 终于清楚!多乐游戏脚本,微信中至有辅助吗,详细攻略(有挂方法)1、任何微信中至有辅助吗透视是真的假的...
分享个大家!德州扑克游戏辅助器... 分享个大家!德州扑克游戏辅助器,凑一桌游戏软件下载辅助,详细器(有挂细节)1、超多福利:超高返利,海...
热门推荐!小程序微乐游戏辅助器... 热门推荐!小程序微乐游戏辅助器,道游互娱辅助,详细技巧(有挂教程)1、小程序微乐游戏辅助器公共底牌简...
推荐十款!同城游辅助器软件下载... 推荐十款!同城游辅助器软件下载,广东雀神挂件去哪买,详细神器(有挂教学)1、每一步都需要思考,不同水...
重大推荐!h5能反杀吗,微信决... 重大推荐!h5能反杀吗,微信决胜游戏辅助,详细软件(有挂工具)微信决胜游戏辅助辅助器是一种具有地方特...
总算清楚!欢乐联盟游戏辅助,雀... 总算清楚!欢乐联盟游戏辅助,雀神麻雀充运势用吗,详细挂(有挂总结)1、雀神麻雀充运势用吗公共底牌简单...
最新技巧!佛手十三道辅助,手机... 最新技巧!佛手十三道辅助,手机游戏辅助器,详细插件(证实有挂)1、很好的工具软件,可以解锁游戏的手机...