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

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

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 229
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

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

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

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

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

{

  [Table("Customers", Schema = "dbo")]

  public partial class Customer : BaseEntity

  {

    [InverseProperty(nameof(CreditRisk.Customer))]

    public virtual ICollection<CreditRisk> CreditRisks { get; set; }

    [InverseProperty(nameof(Order.Customer))]

    public virtual ICollection<Order> Orders { get; set; }

  }

}

Подобно сущностному классу Car в коде по-прежнему присутствуют проблемы, которые необходимо устранить, к тому же понадобится добавить принадлежащий сущностный класс. К навигационным свойствам нужно добавить атрибут [Jsonlgnore], атрибуты обратных навигационных свойств потребуется обновить с использованием суффикса Navigation, типы необходимо изменить на IEnumerable<T> с инициализацией, а модификатор virtual удалить. Ниже показан модифицированный код:

<b>[JsonIgnore]</b>

<b>[InverseProperty(nameof(CreditRisk.CustomerNavigation))]</b>

<b>public IEnumerable&lt;CreditRisk&gt; CreditRisks { get; set; } =</b>

<b>  new List&lt;CreditRisk&gt;();</b>

<b>[JsonIgnore]</b>

<b>[InverseProperty(nameof(Order.CustomerNavigation))]</b>

<b>public IEnumerable&lt;Order&gt; Orders { get; set; } = new List&lt;Order&gt;();</b>

Осталось лишь добавить свойство с типом принадлежащего сущностного класса. Отношение будет позже сконфигурировано посредством Fluent API.

public Person PersonalInformation { get; set; } = new Person();

Итак, обновление сущностного класса Customer окончено.

Сущность Make

Для таблицы Makes был создан шаблонный сущностный класс по имени Make. Операторы using должны иметь следующий вид:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.ComponentModel.DataAnnotations;

using System.ComponentModel.DataAnnotations.Schema;

using System.Text.Json.Serialization;

using AutoLot.Models.Entities.Base;

using Microsoft.EntityFrameworkCore;

Унаследуйте класс Make от BaseEntity и удалите свойства Id и TimeStamp. Удалите конструктор и директиву #pragma nullable disable, а затем добавьте атрибут [Table] со схемой. Вот текущий код сущностного класса:

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

namespace AutoLot.Models.Entities

{

  [Table(&quot;Makes&quot;, Schema = &quot;dbo&quot;)]

  public partial class Make : BaseEntity

  {

    [Required]

    [StringLength(50)]

    public string Name { get; set; }

    [InverseProperty(nameof(Inventory.Make))]

    public virtual ICollection&lt;Inventory&gt; Inventories { get; set; }

  }

}

В представленном далее коде демонстрируется инициализированное свойство Name, не допускающее null, и скорректированное навигационное свойство Cars (обратите внимание на изменение имени Inventory на Car в выражении nameof):

[Required]

[StringLength(50)]

public string Name { get; set; } = <b>&quot;Ford&quot;</b>;

[JsonIgnore]

[InverseProperty(nameof(<b>Car</b>.Make<b>Navigation</b>))]

public <b>IEnumerable</b>&lt;Car&gt; Cars { get; set; } = <b>new List&lt;Car&gt;()</b>;

На этом сущностный класс Make завершен.

Сущность CreditRisk

Для таблицы CreditRisks был создан шаблонный сущностный класс по имени CreditRisk. Приведите операторы using к такому виду:

using System.ComponentModel.DataAnnotations.Schema;

using AutoLot.Models.Entities.Base;

using AutoLot.Models.Entities.Owned;

Унаследуйте класс CreditRisk от BaseEntityиудалите свойства Id и TimeStamp. Удалите конструктор и директиву #pragma nullable disable и добавьте атрибут [Table] со схемой. Удалите свойства FirstName и LastName, т.к. они будут заменены принадлежащим сущностным классом Person. Ниже показан обновленный код сущностного класса:

Перейти на страницу:
Комментариев (0)