EF coreTracking vs Non Tracking query - PullRequest
       1

EF coreTracking vs Non Tracking query

0 голосов
/ 27 февраля 2019

Я новичок в EF core 6. Я сталкивался с запросом отслеживания и отсутствия отслеживания.Я озадачен, где его использовать.Моя цель - написать webapi с ef core, где я не вижу необходимости в отслеживании запросов.Может кто-нибудь, пожалуйста, уточнить разницу между ними.Для вебапи есть необходимость отслеживать запрос.Пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 08 марта 2019

Если вы собираетесь обновить сущность, используйте запрос отслеживания, чтобы изменения сохранялись при вызове SaveChanges для DbContext.Если действие доступно только для чтения (например, HTTP GET), используйте запрос без отслеживания.

, например, для контроллера WebApi:

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
    // GET api/values
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
        // non-tracking
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public ActionResult<string> Get(int id)
    {
        // non-tracking
        return "value";
    }

    // POST api/values
    [HttpPost]
    public void Post([FromBody] string value)
    {
        // tracking
    }

    // PUT api/values/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody] string value)
    {
        // tracking
    }

    // DELETE api/values/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
        // tracking
    }
}
...