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
    
}

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

相关内容

热门资讯

一秒答解(WPK原理)外挂透明... 一秒答解(WPK原理)外挂透明挂辅助挂(黑科技)软件透明挂(真是有挂)-哔哩哔哩;WPK原理是一项W...
实测教程(智星德州菠萝安全)外... 实测教程(智星德州菠萝安全)外挂透明挂辅助器(黑科技)德扑之星(证实有挂)-哔哩哔哩;智星德州菠萝安...
盘点十款(WPK辨别)外挂透明... 盘点十款(WPK辨别)外挂透明挂辅助工具(黑科技)透视辅助(有挂攻略)-哔哩哔哩是一款可以让一直输的...
重要通知(新版Wepoke)外... 重要通知(新版Wepoke)外挂透明挂辅助器(黑科技)插件(有挂总结)-哔哩哔哩;是一款可以让一直输...
分享一款(微扑克智能ai)外挂... 分享一款(微扑克智能ai)外挂透明挂辅助插件(黑科技)保险规则(有挂工具)-哔哩哔哩;大家肯定在之前...
玩家必看攻略(德州实战)外挂透... 玩家必看攻略(德州实战)外挂透明挂辅助安装(黑科技)德州扑克系统规律(有挂教程)-哔哩哔哩是一款可以...
一秒答解(WePoKe辅助插件... 您好:WePoKe辅助插件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
总算了解(WPK透明)外挂透明... 总算了解(WPK透明)外挂透明挂辅助黑科技(黑科技)有正规(确实有挂)-哔哩哔哩;AI辅助机器人普及...
教程辅助(德州ai代理)外挂透... 教程辅助(德州ai代理)外挂透明挂辅助下载(黑科技)辅助技巧(有挂秘笈)-哔哩哔哩;AI辅助机器人普...
推荐攻略(德州手机)外挂透明挂... 推荐攻略(德州手机)外挂透明挂辅助下载(黑科技)ai机器人(了解有挂)-哔哩哔哩;超受欢迎的德州手机...