【发布时间】:2019-09-30 08:51:01
【问题描述】:
我有一个无法理解的 linq 查询,它有什么作用?
@Model.MenuItems.Where(t=>t.Category.Name.Equals(category.Name))
【问题讨论】:
-
集合
MenuItems正在根据指定的category.Name进行过滤。
标签: c# linq entity-framework-core
我有一个无法理解的 linq 查询,它有什么作用?
@Model.MenuItems.Where(t=>t.Category.Name.Equals(category.Name))
【问题讨论】:
MenuItems 正在根据指定的 category.Name 进行过滤。
标签: c# linq entity-framework-core
“从模型的属性“MenuItems”中查找类别名称等于 category.name 的项目”
就像是 MenuItems 列表中的过滤器
【讨论】:
按分类名称过滤菜单项
【讨论】:
MenuItems 集合正在按其关联的类别 (Category.Name) 进行过滤 (WHERE)。类别位于单独的表(类别或类别)中并由外键链接。类别表有一个名称列。表结构很可能与此类似:
TABLE [MenuItem] (
[MenuItemId],
[Name],
[CategoryId]
)
TABLE [Category] (
[CategoryId],
[Name],
)
还有一个假设,Category Foreign Key 是必需的(非空),Name 是必需的,非空。如果它们可以为空,上述查询可能会抛出空异常。
在后台,Entity Framework 正在生成等效的 SQL 查询并自动将结果映射到模型。
.Equals 判断指定对象是否等于当前对象。
https://docs.microsoft.com/en-us/dotnet/api/system.object.equals?view=netframework-4.8
【讨论】:
Determines whether the specified object is equal to the current object. docs.microsoft.com/en-us/dotnet/api/…
菜单项的集合是根据 category.name 过滤的。
【讨论】: