books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

{

  var qs = Context.Customers.ToQueryString();

  var customers = Context.Customers.ToList();

  Assert.Equal(5, customers.Count);

}

Выделенный полужирным оператор транслируется в следующий код SQL:

SELECT [c].[Id], [c].[TimeStamp], [c].[FirstName], [c].[FullName],

       [c].[LastName]
FROM [Dbo].[Customers] AS [c]

Тот же самый процесс применяется для сущностей без ключей, подобных модели представления

CustomerOrderViewModel
, которая сконфигурирован на получение своих данных из представления
CustomerOrderView
:

modelBuilder.Entity<CustomerOrderViewModel>().HasNoKey()

  .ToView("CustomerOrderView", "dbo");

Экземпляр

DbSet<T>
для моделей представлений предлагает всю мощь запросов
DbSet<T>
для сущности с ключом. Отличие касается возможностей обновления. Изменения модели представления не могут быть сохранены в базе данных, тогда как изменения сущностей с ключами — могут. Добавьте в файл класса
OrderTest.cs
показанный далее тест, чтобы продемонстрировать получение данных из представления:

public void ShouldGetAllViewModels()

{

  var qs = Context.Orders.ToQueryString();

  var orders = Context.Orders.ToList();

   Assert.NotEmpty(orders);

  Assert.Equal(5,orders.Count);

}

Выделенный полужирным оператор транслируется в следующий код SQL:

SELECT [c].[Color], [c].[FirstName], [c].[IsDrivable], [c].[LastName],

       [c].[Make], [c].
[PetName]
FROM [dbo].[CustomerOrderView] AS [c]

Фильтрация записей

Метод

Where()
используется для фильтрации записей из
DbSet<T>
. Несколько вызовов
Where()
можно плавно объединять в цепочку для динамического построения запроса. Выстроенные в цепочку вызовы
Where()
всегда объединяются с помощью операции "И". Для объединения условий с применением операции "ИЛИ" необходимо использовать один вызов
Where()
.

Приведенный ниже тест возвращает заказчиков с фамилией, начинающейся с буквы "W" (нечувствительно к регистру символов):

[Fact]

public void ShouldGetCustomersWithLastNameW()

{

  IQueryable<Customer> query = Context.Customers

<b>    .Where(x =&gt; x.PersonalInformation.LastName.StartsWith(&quot;W&quot;));</b>

  var qs = query.ToQueryString();

  List&lt;Customer&gt; customers = query.ToList();

  Assert.Equal(2, customers.Count);

}

Запрос LINQ транслируется в следующий код SQL:

SELECT [c].[Id], [c].[TimeStamp], [c].[FirstName], [c].[FullName],

       [c].[LastName]
FROM [Dbo].[Customers] AS [c]

WHERE [c].[LastName] IS NOT NULL AND ([c].[LastName] LIKE N'W%')

Показанный далее тест возвращает заказчиков с фамилией, начинающейся с буквы "W" (нечувствительно к регистру символов), и именем, начинающимся с буквы "М" (нечувствительно к регистру символов), а также демонстрирует объединение вызовов

Where()
в цепочку в запросе LINQ:

[Fact]

public void ShouldGetCustomersWithLastNameWAndFirstNameM()

{

  IQueryable&lt;Customer&gt; query = Context.Customers

<b>    .Where(x =&gt; x.PersonalInformation.LastName.StartsWith(&quot;W&quot;))</b>

<b>    .Where(x =&gt; x.PersonalInformation.FirstName.StartsWith(&quot;M&quot;));</b>

  var qs = query.ToQueryString();

  List&lt;Customer&gt; customers = query.ToList();

  Assert.Single(customers);

}

Следующий тест возвращает заказчиков с фамилией, начинающейся с буквы "W" (нечувствительно к регистру символов), и именем, начинающимся с буквы "М" (нечувствительно к регистру символов), с применением единственного вызова

Where()
:

[Fact]

public void ShouldGetCustomersWithLastNameWAndFirstNameM()

{

  IQueryable&lt;Customer&gt; query = Context.Customers

<b>    .Where(x =&gt; x.PersonalInformation.LastName.StartsWith(&quot;W&quot;) &amp;&amp;</b>

<b>                x.PersonalInformation.FirstName.StartsWith(&quot;M&quot;));</b>

  var qs = query.ToQueryString();

  List&lt;Customer&gt; customers = query.ToList();

  Assert.Single(customers);

}

Оба запроса транслируются в такой код SQL:

SELECT [c].[Id], [c].[TimeStamp], [c].[FirstName], [c].[FullName],

       [c].[LastName]
FROM [Dbo].[Customers] AS [c]

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*