私はそのソートプロパティでキーワードを並べ替えるのが好きです。 私はpage - >キーワードの間に1対多の関係があります。1対多のリレーションシップと並べ替えで動作するLinq-to-Entities
質問:私は理解としてクエリを実行する場合:
IEnumerable<page> query = from p in contxt.pages where p.ID == myId select p;
IEnumerable<page> pge = query.First();
私はすべてのページのプロパティと一つのキーワードコレクションに設定された単一のページのレコードを期待してもらえますか?
私の理解は、1対多の関係が存在するため、私は結合を実行する必要はありません。 Linq to Entityフレームワークはこの関係の知識を持ち、コレクションを返すべきです。
は、これが私の理解ですので、私はkeyword.sortをソートしようとすると、キーワードが範囲外である:私は、キーワードとして返されるため、クエリが間違っていると思っ上記の理解を活用し
IEnumerable<page> query = from p in contxt.pages where p.ID == myId
orderby p.keywords. select p;
コレクション、次のように私は、ソートを実行する必要があります。
PageKeywords pageKeywords = new PageKeywords();
Keywords keywords;
IEnumerable<page> query = from p in contxt.pages
where p.ID == vals.pageId select p;
page pge = query.First();
pageKeywords.keywords = new List<Keywords>();
pageKeywords.id = pge.ID;
pageKeywords.description = pge.descp;
pageKeywords.title = pge.title;
pageKeywords.showTitle = pge.showTitle;
pageKeywords.keywords = pge.keywords.OrderBy(k => k.sort);
foreach (var item in pageKeywords.keywords)
{
keywords = new Keywords();
keywords.id = item.id;
keywords.name = item.name;
keywords.sort = item.sort;
pageKeywords.keywords.Add(keywords);
}
しかし、これは動作しませんでした。キーワードはソート順にソートされていませんか?上のコードはうまくいきますが、キーワードをsortプロパティでソートする必要があります。キーワードコレクションがソートされていません。
私も試してみました:
動作しませんでしたpageKeywords.keywords.Sort((x, y) => int.Compare(x.sort, y.sort));
を。
私は理解しようとしましたが、何か不足していますか?どんな提案も認められるでしょう。
うわー!クエリ内でオブジェクトを作成しています。私の学習に多くの助けとなりました。 varを使用する代わりに、返されるデータ型は分かりません。私の推測では、データ型は新しいPageKeywordsオブジェクトか、IEnumerableですか?スウィートコードは、たくさんの行を保存します。 –
deDogs
データ型は 'IQueryable'です。 –