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
Перейти на страницу:

namespace AutoLot.Models.Entities

{

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

  public partial class CreditRisk : BaseEntity

  {

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

    public int CustomerId { get; set; }

    [ForeignKey(nameof(CustomerId))]

    [InverseProperty("CreditRisks")]

    public virtual Customer Customer { get; set; }

  }

}

Исправьте навигационное свойство, для чего удалите модификатор

virtual
, используйте выражение
nameof
в атрибуте
[InverseProperty]
и добавьте к имени свойства суффикс
Navigation
:

<b>[ForeignKey(nameof(CustomerId))]</b>

<b>[InverseProperty(nameof(Customer.CreditRisks))]</b>

<b>public Customer? CustomerNavigation { get; set; }</b>

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

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

Итак, сущностный класс

CreditRisk
закончен.

Сущность Order

Для таблицы

Orders
был создан шаблонный сущностный класс по имени
Order
. Модифицируйте операторы
using
следующим образом:

using System;

using System.ComponentModel.DataAnnotations.Schema;

using AutoLot.Models.Entities.Base;

using Microsoft.EntityFrameworkCore;

Унаследуйте класс

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

namespace AutoLot.Models.Entities

{

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

  [Index(nameof(CarId), Name = &quot;IX_Orders_CarId&quot;)]

  [Index(nameof(CustomerId), nameof(CarId),

     Name = &quot;IX_Orders_CustomerId_CarId&quot;,
IsUnique = true)]

  public partial class Order : BaseEntity

  {

    public int CustomerId { get; set; }

    public int CarId { get; set; }

    [ForeignKey(nameof(CarId))]

    [InverseProperty(nameof(Inventory.Orders))]

    public virtual Inventory Car { get; set; }

    [ForeignKey(nameof(CustomerId))]

    [InverseProperty(&quot;Orders&quot;)]

    public virtual Customer { get; set; }

    }

}

К именам навигационных свойств

Car
и
Customer
необходимо добавить суффикс
Navigation
. Навигационное свойство
Car
должно иметь тип
Car
, а не
Inventory
. В выражении
nameof
в обратном навигационном свойстве нужно применять
Car.Orders
вместо
Inventory.Orders
. В навигационном свойстве
Customer
должно использоваться выражение
nameof
для
InverseProperty
. Оба свойства должны быть сделаны допускающими значение
null
. Модификатор
virtual
понадобится удалить.

[ForeignKey(nameof(CarId))]

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

public <b>Car?</b> Car<b>Navigation</b> { get; set; }

[ForeignKey(nameof(CustomerId))]

[InverseProperty(<b>nameof(Customer.Orders)</b>)]

public Customer? CustomerNavigation { get; set; }

На этом сущностный класс

Order
завершен.

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

AutoLot.Dal
не скомпилируется до тех пор, пока не будет обновлен класс
ApplicationDbContext
.

Сущность SeriLogEntry

База данных нуждается в дополнительной таблице для хранения журнальных записей. В проектах ASP.NET Core из части VIII будет применяться инфраструктура ведения журналов SeriLog, и один из вариантов предусматривает помещение журнальных записей в таблицу SQL Server. Хотя таблица будет использоваться через несколько глав, имеет смысл добавить ее сейчас.

Эта таблица не связана ни с одной из остальных таблиц и не задействует класс

BaseEntity
. Добавьте в каталог
Entities
новый файл класса по имени
SeriLogEntry.cs
и поместите в него следующий код:

using System;

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

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

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


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

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


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

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

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


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