Я создал dbcontext и модели, используя EF pomelo.entityframeworkcore.mysql. Я хочу выяснить, как отключить контекст для извлечения ненужной информации при попытке извлечения объектов, имеющих отношения foriegnkey с другими таблицами.
прямо сейчас API возвращает объекты и связанные с ними объекты с помощью навигации по иностранным ключам.
например, вот что возвращает:
и вот как я хочу его вернуть:
Я хочу, чтобы он остановился на serviceextra, например. это переменная Icollection внутри Сервиса. поскольку сервис и дополнительные оба имеют третью таблицу отношений многих ко многим.
Возможная причина: в функции я получаю три объекта, после того как я получаю Сервис
Service = await _context.Service.SingleOrDefaultAsync(m => m.Idservice == id);
Я получаю другой объект под названием ServiceExtra, теперь сервис имеет поле навигации serviceextra, поэтому я вызываю эту функцию
var serviceExtras = await _context.ServiceExtra.Where(m => m.Fkservice == id).ToListAsync();
также заполняет данные внутри serviceExtra объекта Service. если я не вызываю эту функцию, это не так.
Класс запуска:
public class Startup
{
public Startup(IConfiguration configuration,IHostingEnvironment hostingEnvironment)
{
Configuration = configuration;
HostingEnvironment = hostingEnvironment;
}
public IConfiguration Configuration { get; }
public IHostingEnvironment HostingEnvironment { get; }
public void ConfigureServices(IServiceCollection services)
{
var connection = Configuration["ConnectionStrings:connection"];
services.AddDbContext<Db_context>(options => options.UseMySql(connection));
services.AddMvc();
services.AddMvc().AddJsonOptions(
options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}