Я знаю, что я близок с этим ...
Моя структура:
У меня есть несколько компаний. У каждой компании есть основной пользователь (аккаунт) и список всех пользователей (аккаунты).
Я реализовал это в базе данных как таблицу компаний, которая имеет «Первичный» в качестве внешнего ключа для таблицы «Учетные записи», а таблица «Учетные записи» имеет CompanyId, который является внешним ключом для таблицы «Компании».
Таким образом, всегда есть только один основной пользователь, и каждый пользователь связан с одной компанией.
Я хочу получить список всех компаний и поместить их в объект С#. Что у меня есть до сих пор:
public IEnumerable<Company> GetAllCompaniesList()
{
var allData = database.Companies.All()
.Join(database.Accounts).On(database.Accounts.Id == database.Companies.Primary)
.Join(database.Accounts).On(database.Accounts.CompanyId == database.Companies.Id)
.ToList<Company>();
return allData;
}
и он работает в моих тестах с использованием встроенного в память адаптера с соответствующими настроенными ключами, но не в реальной версии, вылетая с
Объекты «dbo.Accounts» и «dbo.Accounts» в предложении FROM имеют одинаковые открытые имена. Используйте корреляционные имена, чтобы различать их.
Я думаю, это означает, что мне нужно назвать каждое соединение (например, чтобы сделать sql как «присоединить a к a = b как c»), но я не могу найти синтаксис для этого. Кто-нибудь знает?