Code: Select all
this.Entities.Include(x => x.Posts).ThenInclude(x => x.Notes).Include(x => x.BlogUsers).Where(x => x.Id == 1).ToList();
Code: Select all
public class Blog {
public int Id { get; set; }
public string Name { get; set; }
public List<Post> Posts { get; set; }
public List<BlogUser> BlogUsers { get; set; }
}
public class Post {
public int Id { get; set; }
public string Name { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
public List<Note> Notes { get; set; }
}
public class Note {
public int Id { get; set; }
public int PostId { get; set; }
public Post Post { get; set; }
}
public class BlogUser {
public int Id { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
Code: Select all
modelBuilder.Entity<BlogUser>(s => {
s.HasKey(e => e.Id);
s.HasOne(e => e.Blog).WithMany(h => h.BlogUsers).HasForeignKey(h => h.BlogId);
s.ToTable("BLOGUSER");
});
modelBuilder.Entity<Note>(s => {
s.HasKey(e => e.Id);
s.ToTable("NOTE");
s.HasOne(e => e.Post).WithMany(h => h.Notes).HasForeignKey(h => h.PostId);
});
modelBuilder.Entity<Post>(s => {
s.HasKey(e => e.Id);
s.Property(e => e.Name).HasMaxLength(250);
s.ToTable("POST");
s.HasOne(e => e.Blog).WithMany(h => h.Posts).HasForeignKey(h => h.BlogId);
});
modelBuilder.Entity<Blog>(s => {
s.HasKey(e => e.Id);
s.ToTable("BLOG");
s.Property(e => e.Name).HasMaxLength(250);
});
To recreate, the table needs to have data in itat Devart.Data.Oracle.ay.b()
at Devart.Data.Oracle.am.f()
at Devart.Data.Oracle.am.e()
at Devart.Data.Oracle.c5.a(am A_0, Int32 A_1)
at Devart.Data.Oracle.c5.a(Int32 A_0, bg A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Data.Oracle.Entity.ai.a(CommandBehavior A_0)
at Devart.Common.Entity.cj.d(CommandBehavior A_0)
at Devart.Data.Oracle.Entity.ai.b(CommandBehavior A_0)
at System.Data.Common.DbCommand.ExecuteReader()
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.BufferlessMoveNext(Boolean buffer)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.QueryBuffer.IncludeCollection(Int32 includeId, INavigation navigation, INavigation inverseNavigation, IEntityType targetEntityType, IClrCollectionAccessor clrCollectionAccessor, IClrPropertySetter inverseClrPropertySetter, Boolean tracking, Object entity, Func`1 relatedEntitiesFactory)
at lambda_method(Closure , QueryContext , Blog , Object[] )
at Microsoft.EntityFrameworkCore.Query.Internal.IncludeCompiler._Include[TEntity](QueryContext queryContext, TEntity entity, Object[] included, Action`3 fixup)
at lambda_method(Closure , Blog )
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__17`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)