Как отключить EF .net core2 api от получения свойств навигации - PullRequest
0 голосов
/ 30 августа 2018

Я создал dbcontext и модели, используя EF pomelo.entityframeworkcore.mysql. Я хочу выяснить, как отключить контекст для извлечения ненужной информации при попытке извлечения объектов, имеющих отношения foriegnkey с другими таблицами. прямо сейчас API возвращает объекты и связанные с ними объекты с помощью навигации по иностранным ключам.

например, вот что возвращает: enter image description here

и вот как я хочу его вернуть: enter image description here

Я хочу, чтобы он остановился на 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();

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...