Mam następującą strukturę:Projekcja MongoDB dokument podrzędny przy użyciu C sterownik # .NET 2.0
public class Category
{
[BsonElement("name")]
public string CategoryName { get; set; }
[BsonDateTimeOptions]
[BsonElement("dateCreated")]
public DateTime DateStamp { get; set; }
[BsonElement("tasks")]
public List<TaskTracker.Task> Task { get; set; }
}
public class Task
{
[BsonElement("name")]
public string TaskName { get; set; }
[BsonElement("body")]
public string TaskBody { get; set; }
}
Próbuję kwerendy Category
aby uzyskać wszystkie wartości TaskName
a następnie zwrócić je do listy mają być wyświetlane w pole listy.
Próbowałem przy użyciu tej kwerendy:
var getTasks = Categories.Find<Category>(x => x.CategoryName == catName)
.Project(Builders<Category>.Projection
.Include("tasks.name")
.Exclude("_id"))
.ToListAsync()
.Result;
Ale co się zwrócony jest: {"tasks": [{"name: "test"}]}
.
Czy mimo to wystarczy zwrócić wartość ciągu?
Próbowałem Twojego zapytania i próbowałem dodać go do 'Listy>' ale to, co jest zwracane, to: '{System.Linq.Enumerable.WhereSelectEnumerableIterator } ' –
Lynchy
Tak, to jest zamienny na IEnumerable. Czy możesz podać więcej kodu o tym, co robisz? –
Myślę, że znalazłem rozwiązanie. Zwróciłem zapytanie 'taskNames' w następujący sposób:' return taskNames [0] .ToList(); 'i wydawało się, że to działa. Czy to dobra praktyka? – Lynchy