gpt4 book ai didi

c# - 使用 linq 从链接到另一个表的表中获取单个记录

转载 作者:行者123 更新时间:2023-12-04 05:04:56 26 4
gpt4 key购买 nike

这个问题令人困惑,因为我真的不知道如何问这个。

无论如何,我有 4 个表,我需要进入 TokenSetting 表以获取单个记录。我得到了公司代码,我必须从那里旅行并获取我需要的其余信息。而且因为每个公司都有多个公司结构,所以我必须首先获得公司结构才能获得分配给它的代币。

这是布局:

enter image description here

这是我的代码:

  _currentcorp = (from c in _entities.Corporations
where c.CompanyCode == textBox_CompanyCode.Text
select c).FirstOrDefault();

if (_currentcorp == null)
{
errorProvider1.SetError(textBox_CompanyCode, "Invalid corporation.");
return;
}

var corpstructure = (from cs in _currentcorp.CorporationStructures
where cs.District == null &&
cs.Branch == null &&
cs.Region == null
select cs).FirstOrDefault();

if (corpstructure == null)
{
errorProvider1.SetError(textBox_CompanyCode, "Invalid corporation structure.");
return;
}

var tokensetting = (from ts in _currentcorp.Tokens
where ts.CorporationStructureId == corpstructure.CorporationStructureId
select ts.TokenSettings).FirstOrDefault();

即使我告诉它获取 first 或 default ,tokensetting 也会作为 ienumerable 返回。我假设它是说在 token 上获得 firstordefault ?

无论如何,即使表是一对多的,tokensetting 表中也应该只有 1 条记录。如何仅在此表上返回 first 或 default?

====答案====

按照建议,我做了以下事情:
  var tokensetting = (from ts in _currentcorp.Tokens
where ts.CorporationStructureId == corpstructure.CorporationStructureId
select ts.TokenSettings.FirstOrDefault()).FirstOrDefault();

最佳答案

我相信 LINQ 查询会返回 IEnumerableIEnumerables ,所以第二个 .FirstOrDefault()应该得到你想要的。

第一个调用指定您需要 LINQ 查询结果中的第一行,第二个调用指定您需要 ts.TokenSettings 的第一个元素。 ,这本身就是一个集合。

关于c# - 使用 linq 从链接到另一个表的表中获取单个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647860/

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