skip拡張子と多対多の関係を扱うときは、linqからsqlに非常に不満です。私は結合されたクエリを使用することができません。 SQL Server 2005の場合はわかりませんが、現在SQL Server 2000を使用しています。ストアプロシージャjoinを使用して1つのテーブルからすべてのフィールドを選択する
ここでは、2つのテーブルに一致するテーブルを取得するストアプロシージャを記述することを検討します。 Album_Photo(Album-> Album_Photo < -Photo)と写真のテーブルで写真のデータのみが必要なので、アルバムのIDとAlbum_Photoを一致させ、そのIDを使って写真とマッチングさせます。ストアプロシージャでは、すべての結合データをフェッチしています。その後、linq to sqlで、新しいAlbumオブジェクトを作成します。
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();
結果をIEnumerableではなくIQueryableとして取得するためにAsQueryableを使用しました。後で私はコレクションで何かしたい、それは私にこのエラーを与える:
:クエリ結果を複数回列挙することはできません。