0

そのタグを選択する場所がPostたくさんあります。すべてのタグを単純な文字列として出力したいだけです。TagsName

これらのエラーが発生します

ブロック内の戻り値の型の一部がデリゲートの戻り値の型に暗黙的に変換できないため、ラムダ式をデリゲート型 'System.Func' に変換できません

タイプ 'int' を 'char' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)

var posts = _db.Posts.OrderByDescending(x => x.CreatedDateTime).AsEnumerable().Select(post => new
{
    post.Id,
    post.Title,
    Tags = post.Tags.SelectMany(x => x.Name).Aggregate((current, next) => current + ',' + next) // error
});

" "また、変数に区切り記号を使用して保存しようとしましたが、何も役に立ちません。ここで何が間違っていますか?

4

2 に答える 2

2

SelectManyに置き換えますSelect

于 2013-10-13T15:54:40.877 に答える
1

SelectMany は、リストのリストを返すクエリを平坦化します。これは結合ショートカットのようなものであるため、エラーが発生します。あなたがする必要があるのは、それを Select に置き換えることだけです。コードは次のとおりです。動作するはずです。

var posts = _db.Posts.OrderByDescending(x => x.CreatedDateTime).AsEnumerable().Select(post => new
{
    post.Id,
    post.Title,
    Tags = post.Tags.Select(x => x.Name).Aggregate((current, next) => current + ',' + next) // error
});
于 2013-10-13T15:57:51.393 に答える