这个问题令人困惑,因为我真的不知道如何问这个问题。
无论如何,我有 4 个表,我需要访问 TokenSetting 表来获取一条记录。我得到了公司代码,我必须从那里旅行并获取我需要的其余信息。而且因为每个公司都有多个公司结构,所以我必须首先获得公司结构才能获得分配给它的代币。
这是布局:
这是我的代码:
_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();
即使我告诉它获取第一个或默认值,令牌设置也会以可枚举的形式返回。我假设它是说在令牌上获得第一或默认值?
无论如何,即使表是一对多,tokensetting 表中也应该只有 1 条记录。如何仅在此表上返回第一个或默认值?
==== 答案 ====
按照建议,我做了以下事情:
var tokensetting = (from ts in _currentcorp.Tokens
where ts.CorporationStructureId == corpstructure.CorporationStructureId
select ts.TokenSettings.FirstOrDefault()).FirstOrDefault();