Несмотря на то, что я использую метод Take (), EF Core возвращает все данные - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть вид в моей БД.Я создал модель зрения и назову ее EF Core.Есть 16 строк в поле зрения.Когда я вызываю его с помощью EF Core и использую Take(10), он возвращает 10 строк, но я смотрю, как DBSet показывает все строки.Для подробностей вот мой код

[Table("my_view", Schema ="dbo")]
public class MyView
{

    [Column("id")]
    [Key]
    public int Id { get; set; }

    [Column("name")]
    public string Name { get; set; }

}

в моих действиях:

public JsonResult Index()
{
    using (var context = new CCContext())
    {
        var listOfData = context.MyView
                            .AsQueryable().Take(10).ToList();
        return Json(listOfData);
    }
}

PS.По какой-то проблеме я не смог загрузить экран результатов. (https://m.imgur.com/gallery/xmP3q32)

https://imgur.com/a/xmP3q32

1 Ответ

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

Если вы имеете в виду context.MyView содержит все строки, то вы правы.Потому что это представление таблицы в БД.Однако в вашем примере listOfData должен содержать только 10 строк.Если это так, то это именно так, как и следовало ожидать.

Если вышеизложенное не дает ответа на ваш вопрос, пожалуйста, дайте более глубокое понимание, а также, какого поставщика БД вы используете с EF?

Для уточнения: Данные отсутствуют, пока вы не попросите отладчик (или код) получить их для вас.Единственная причина, по которой вы это видите, заключается в том, что вы просите отладчик показать его содержимое, и поэтому оно извлекает его содержимое.Это не будет, если вы не попросите об этом.

...