#c# #entity-framework-core #azure-cosmosdb
Вопрос:
У меня есть объект «Автор», и в нем есть список книг в качестве дочерних объектов, как показано ниже
public class Author
{
public Guid AuthorId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
public ICollection<Book> Books { get; set; } = new HashSet<Book>();
}
Это хранится в CosmosDB в виде двух отдельных документов (так, по-видимому, EF пишет в Cosmos).
Однако, если я сделаю следующее
using (var context = new BookStoreDbContext())
{
var list = context.Authors;
foreach (var author in list)
{
Console.WriteLine(author.FirstName " " author.LastName);
foreach (var book in author.Books)
{
Console.WriteLine("t" book.Title);
}
}
}
Коллекция книг пуста…
Как мне заставить его вернуть книги?
Ответ №1:
Я нашел проблему. Мне нужно было добавить следующий код в BookStoreDbContext
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Account>().OwnsMany(t => t.AccountUsers);
}