如何使用 LinQ 通过 ClassId 从“Table1”中获取 Name-property 的 Name-prope

本文关键字:获取 Name-property Name-prope Table1 LinQ 何使用 通过 ClassId | 更新日期: 2023-09-27 18:32:40

我在数据库中有 2 个表。 第一个表是其所有描述,第二个表描述是第一个表中的一个部分。它看起来像:

+----------+    +----------+
I  Table1  I    I  Class   I
+----------+    +----------+
I  Id      I    I  Id      I
I  ClassId I <- I  Name    I
+----------+    +----------+

主表其表1。提供连接表。

[HttpPost]
public ActionResult RoomFound(int className, FormCollection collection)
{
    var example = db.table1.Where(p => p.ClassId == className);
    ViewBag.Ex = example.ToList();
}

现在,当我创建视图并显示结果时,它向我显示像数字一样的 ClassId,但我想从 table2 中看到字符串格式。如何在主表(表1(中连接表 2(类(中的领带。

如何使用 LinQ 通过 ClassId 从“Table1”中获取 Name-property 的 Name-prope

假设className实际上是一个ClassId那么你甚至不需要查询Table1表,只需直接查询Class表,即

ViewBag.Ex = db.Class.Where(p => p.Id == className).Select(p => p.Name).ToList();

但是,我要指出的是,Table1Class之间存在明确的关系,因此通常在数据库级别定义它并将其延续到您的ORM模型中,该模型会自动为您提供导航属性,例如

var t = db.table1.Where(p => p.ClassId == className);
ViewBag.Ex = t.Select(p => p.Class.Name).ToList();

就像我说的,看起来您甚至根本不需要在这里查询Table1表。