Вопрос сбивает с толку, так как я действительно не знал, как его задать.
Во всяком случае, у меня есть 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 возвращается как ienumerable, хотя я говорю, что он должен получить firstordefault. Я предполагаю, что это говорит о том, чтобы получить firstordefault для токенов?
В любом случае, в таблице настроек токенов должна быть только 1 запись, даже если таблица 1 ко многим. Как вернуть firstordefault только для этой таблицы?
==== ОТВЕТ ====
Как было предложено, я сделал следующее:
var tokensetting = (from ts in _currentcorp.Tokens
where ts.CorporationStructureId == corpstructure.CorporationStructureId
select ts.TokenSettings.FirstOrDefault()).FirstOrDefault();