Я очень разочарован от linq до sql, когда имею дело со многими ко многим отношениями с расширением пропуска. Это не позволяет мне использовать объединенные запросы. Не уверен, что это так для SQL Server 2005, но в настоящее время я использую SQL Server 2000.
Теперь я собираюсь написать процедуру хранения для выборки таблицы, которая соответствует двум таблицам, например, В Album_Photo (Album-> Album_Photo <-Photo) и в таблице «Фотографии» нужны только данные «Фотографии», поэтому я сопоставляю идентификатор альбома с «Альбом_Фото» и использую этот идентификатор для соответствия фотографии. В процедуре магазина я просто выбираю все объединенные данные. После этого в linq to sql я создаю новый объект Album. </p>
, например
var albums = (from r in result
where (modifier_id == r.ModifierID || user_id == r.UserID)
select new Album() {
Name = r.Name,
UserID = r.UserID,
ModifierID = r.ModifierID,
ID = r.ID,
DateCreated = r.DateCreated,
Description = r.Description,
Filename = r.Filename
}).AsQueryable();
Я использовал AsQueryable, чтобы получить результат как IQueryable, а не IEnumerable. Позже я хочу что-то сделать с коллекцией, она выдает мне эту ошибку:
System.InvalidOperationException: результаты запроса не могут быть перечислены более одного раза.