私は本当にこれを尋ねる方法を知らなかったので、質問は混乱しています。
とにかく、私は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();
トークン設定は、firstまたはdefaultを取得するように指示しているにもかかわらず、無数に戻ってきています。トークンでfirstordefaultを取得すると言っていると思いますか?
とにかく、テーブルが1対多であっても、トークン設定テーブルには1つのレコードしか存在しないはずです。このテーブルでのみfirstまたはdefaultを返すにはどうすればよいですか?
====回答====
提案されたように、私は次のことをしました:
var tokensetting = (from ts in _currentcorp.Tokens
where ts.CorporationStructureId == corpstructure.CorporationStructureId
select ts.TokenSettings.FirstOrDefault()).FirstOrDefault();