linq to sql C#:用字符串值替换外键并保留表结构

发布于 2024-11-09 07:45:06 字数 380 浏览 0 评论 0原文

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

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

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

DateTime time = (DateTime)query.DateOpened;

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

I'm wondering if its possible to do this. The issue being that im trying to query the database to populate some lists. If i were to use this query:

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

It would return all of the relevant data and I could still access and cast the data from the result object like:

DateTime time = (DateTime)query.DateOpened;

But the field Flavor is a foreign key number so its useless in this context. What I want to do is return a table intact, replacing the foreign key of flavor with the actual name from the flavor lookup table and still be able to use that data. Does that make sense? Pretty straight forward, i think.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

獨角戲 2024-11-16 07:45:06

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

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()。否则,您最终将在每次访问查询时查询数据库,而不是加载一次数据并重复使用它。

You need to join two tables like this:

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();

Also, add ToList(). Otherwise you will end up querying database every time you access the query, versus loading data once and reusing it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文