Похоже, что вы используете два отдельных репозитория linq-to-sql для объединения. Это не сработает. Объединения могут работать только между таблицами, определенными в одном репозитории.
Однако, если вы с радостью перенесете все данные в память, ваш код будет очень легко заставить работать. Попробуйте это:
var myIBookRepository = new BookRepository();
var myIBok_ForfattareRepository = new Bok_ForfattareRepository();
var allBooks =
myIBookRepository.HamtaAllaBocker().ToArray();
var Book_Authors =
myIBok_ForfattareRepository.HamtaAllaBok_ForfattareNummer().ToArray();
var q =
from booknn in allBooks
join Book_Authornn in Book_Authors
on booknn.BookID equals Book_Authornn.BookID
select new { booknn.title, Book_AuthorID = Book_Authornn.Book_Author };
Обратите внимание на включение двух .ToArray()
вызовов.
Мне пришлось исправить некоторые из имен переменных, и я немного догадался о том, как получить идентификатор автора.
Это работает для вас?
Я бы предложил иметь только один репозиторий и разрешить нормальное объединение - загрузка всех объектов в память может быть дорогой.
Если вы создаете пользовательские репозитории, вы также можете создать пользовательский метод, который возвращает заголовок и идентификаторы авторов как определенный класс, а не как анонимный класс. Делает для лучшей тестируемости.