1

私は流暢なモンゴを使用しています。

私はエンティティを持っています

public class SomeList
{
        public List<ItemLike> Likes { get; set; }
        public List<ItemComment> Comments { get; set; }
        public List<ListItem> ListItems { get; set; }
}

ListItem は別のエンティティです

public class ListItem 
{
        pub string ListItemId { get; set; }
        public List<ItemComment> CommentsList { get; set; }
        public List<Photo> ItemPhotos { get; set; }
}

したがって、メイン エンティティ SomeList には List があり、エンティティ ListItem にも List があります。

ListItem からリストを取得する mongo クエリが必要です。

次のクエリを使用しています

var myCollection = GetMongoDatabase().GetCollection<SomeList>("SomeLists");
var list = myCollection.Find(Query.EQ("ListItems.ListItemId", listItemId)).SetFields(Fields.Slice("ListItems.LikesList", 0)).SingleOrDefault();

ListItem listItem = list.ListItems.Where(x => x.ListItemId == listItemId).SingleOrDefault();
items = listItem.CommentsList;

Query.EQ(“ListItems.ListItemId”, listItemId) を実行すると、メインの SomeList エンティティが得られます。次の行で where 句を再度適用しています。私はしたくない。

4

1 に答える 1

1

ここでリストに返されるメインの SomeList コレクションを取得していますか?

var list = myCollection.Find(Query.EQ("ListItems.ListItemId", listItemId))
             .SetFields(Fields.Slice("ListItems.LikesList", 0)).SingleOrDefault();

SingleOrDefault()これから呼び出しを削除するとどうなりますか?

于 2012-02-29T13:16:54.087 に答える