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

public IEnumerable Cars { get; set; } = new List();

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

<p id="AutBody_Root968"><strong>Сущность CreditRisk</strong></p>

Для таблицы 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. Ниже показан обновленный код сущностного класса:

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:

[ForeignKey(nameof(CustomerId))]

[InverseProperty(nameof(Customer.CreditRisks))]

public Customer? CustomerNavigation { get; set; }

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

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

Итак, сущностный класс CreditRisk закончен.

<p id="AutBody_Root969"><strong>Сущность Order</strong></p>

Для таблицы 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("Orders", Schema = "dbo")]

  [Index(nameof(CarId), Name = "IX_Orders_CarId")]

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

     Name = "IX_Orders_CustomerId_CarId", 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("Orders")]

    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(Car.Orders))]

public Car? CarNavigation { get; set; }

[ForeignKey(nameof(CustomerId))]

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

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных