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、掌中乐游戏中心有...
十分钟了解!星悦云南麻将有吗,... 十分钟了解!星悦云南麻将有吗,吉祥斗地主大填坑有挂吗,规律教程(有挂透明);1、实时吉祥斗地主大填坑...
八分钟了解!手机潮汕雀友麻将会... 八分钟了解!手机潮汕雀友麻将会真的有挂吗,河洛杠次输赢规律,技巧教程(有挂插件)1、构建自己的手机潮...
三分钟了解!大唐麻将系统规律,... 三分钟了解!大唐麻将系统规律,决战血流有没有外挂,微扑克教程(有挂详情)1)决战血流有没有外挂辅助挂...
1分钟了解!多乐够级辅助工具,... 1分钟了解!多乐够级辅助工具,可乐斗地主残局修改器,规律教程(有挂脚本)1、下载好可乐斗地主残局修改...
9分钟了解!天天斗地主跑得快怎... 9分钟了解!天天斗地主跑得快怎么拿好牌,财神13张外挂效果,2025新版教程(有挂脚本);1、金币登...
九分钟了解!牌乐门开挂真的,中... 九分钟了解!牌乐门开挂真的,中至跑得快有挂吗,专业教程(有挂秘籍)一、中至跑得快有挂吗AI软件牌型概...
八分钟了解!微友麻将胡牌神器,... 八分钟了解!微友麻将胡牌神器,小吆湖南跑得快有挂吗,揭秘教程(有挂技巧);1、小吆湖南跑得快有挂吗a...
二分钟了解!中至麻将打炸有挂的... 二分钟了解!中至麻将打炸有挂的吗,海南老友麻将有挂的吗,黑科技教程(有挂透视)1、每一步都需要思考,...
七分钟了解!广西山水手机麻将有... 七分钟了解!广西山水手机麻将有挂吗,川麻圈辅助器价格,2025新版总结(有挂普及);在进入广西山水手...