gpt4 book ai didi

asp.net-mvc - 如何使用 Id MVC 5 从另一个表中获取名称?

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:08 24 4
gpt4 key购买 nike

我很难理解如何在我的 MVC 5 项目中使用外键从另一个表中获取名称。我想与我的 ShirtSize 和 Products 表建立一对多关系,因此一种尺寸有很多产品。

我的产品模型上有这个设置

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

[DataType(DataType.Currency)]
public decimal Price { get; set; }

public string Description { get; set; }


[Display(Name = "Size")]
public int SizeId { get; set; }
public virtual ShirtSize ShirtSize { get; set; }

[Display(Name = "Image Name")]
public string ImageFileName { get; set; }

这就是我的 ShirtSize 模型的内容

        public int Id { get; set; }
public string Size { get; set; }
public virtual ICollection<Product> Products { get; set; }

Size 属性是大号、中号或小号等尺寸的名称。现在如何使用产品表中的 ShirtId 获取尺码?

我尝试做一些与下面的代码类似的事情,但在 Include 部分内部突出显示为红色。

public ViewResult Index()
{
var courses = db.Courses.Include(c => c.Department);
return View(courses.ToList());
}

最佳答案

顺便说一句,这将是一种方法...

var sizeId = 2;
var product = db.Products.FirstOrDefault(p => p.SizeId == sizeId);
var size = product.ShirtSize.Size;

但是,如果您考虑一下,每次调用 FirstOrDefault 时都可能返回不同的产品(或者可能什么都没有)。如果您编写的代码使用了该产品,您可能会无意中将错误引入您的应用程序。一种更安全的方法是直接从 ShirtSizes 表中获取尺码。这样毫无疑问你的意图是什么。你可以这样写...

var sizeId = 2;
var shirtSize = db.ShirtSizes.FirstOrDefault(s => s.SizeId == sizeId);
var size = shirtSize.Size;

关于asp.net-mvc - 如何使用 Id MVC 5 从另一个表中获取名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27372187/

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