Я следую этой документации , чтобы объединить 2 таблицы с помощью Fluent API
Это мои объекты:
public class Personas
{
[Key]
public int idPersona { get; set; }
public String nombrePersona { get; set; }
public String apellidoPersona { get; set; }
public String loginPersona { get; set; }
public int idRol { get; set; }
public Rol rolPersona { get; set; }
}
public class Rol
{
[Key]
public int idRol{ get; set; }
public String nombreRol { get; set; }
public ICollection<Personas> personas { get; set; }
}
И это мой файл DBcontext
public class AppDBContext:DbContext
{
public AppDBContext(DbContextOptions<AppDBContext> options):base(options) {}
public DbSet<Personas> tPersonas { get; set; }
public DbSet<Rol> tRol { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Rol>().HasMany(s => s.personas);
base.OnModelCreating(modelBuilder);
}
}
Первая проблема: код не завершен, но результат выглядит следующим образом:
Результат должен выглядеть следующим образом
Вторая проблема: в документации рекомендуется использовать класс «DbModelBuilder», а не класс «ModelBuilder», но Visual Studio автоматически завершает метод «OnModelCreating». По какой-то причине я не могу использовать «System.Data.Entity», и мне разрешено использовать только «Microsoft.EntityFrameworkCore».
Пожалуйста, помогите
РЕДАКТИРОВАТЬ 1: Это код контроллера
// GET api/<controller>/5
[HttpGet("{id}")]
public HttpResponseMessage Get(int id)
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
Personas persona = dbContext.tPersonas.FirstOrDefault(p => p.idPersona == id);
if (persona != null)
{
response.Content = new StringContent(JsonConvert.SerializeObject(persona));
response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
return response;
}
else
{
response = new HttpResponseMessage(HttpStatusCode.BadRequest);
response.Content = new StringContent("error message");
return response;
}
}