LINQ to SQL C#:将外键替换为其字符串值并保留表结构

本文关键字:字符串 保留 结构 替换 SQL to LINQ | 更新日期: 2023-09-27 17:57:23

我想知道是否有可能做到这一点。问题是我试图查询数据库以填充一些列表。如果我使用此查询:

var query =
     a in db.Record_HoldData
     where a.HoldStatus == "Open"
     select a;

它将返回所有相关数据,我仍然可以从结果对象访问和转换数据,例如:

DateTime time = (DateTime)query.DateOpened;

但是字段 Flavor 是一个外键数字,因此在这种情况下毫无用处。我想做的是完整地返回一个表,将flavor的外键替换为flavor查找表中的实际名称,并且仍然能够使用该数据。这有意义吗?我认为这很简单。

LINQ to SQL C#:将外键替换为其字符串值并保留表结构

您需要像这样连接两个表:

var query = (
    from a in db.Record_HoldData
    join b in db.FlavorTable on
        a.FlavorId equals b.Id
    where a.HoldStatus == "Open"
    select
        new
        {
            a.DateOpened,
            a.Field1,
            a.Field2,
            ...
            b.FlavorName
        })
    .ToList();

另外,添加 ToList()。否则,您最终将在每次访问查询时查询数据库,而不是加载一次数据并重用它。