Итак, обновление сущностного класса 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] со схемой. Вот текущий код сущностного класса:namespace AutoLot.Models.Entities
{
[Table("Makes", Schema = "dbo")]
public partial class Make : BaseEntity
{
[Required]
[StringLength(50)]
public string Name { get; set; }
[InverseProperty(nameof(Inventory.Make))]
public virtual ICollection
}
}
В представленном далее коде демонстрируется инициализированное свойство Name
null, и скорректированное навигационное свойство Cars (обратите внимание на изменение имени Inventory на Car в выражении nameof):[Required]
[StringLength(50)]
public string Name { get; set; } = "Ford"
[JsonIgnore]
[InverseProperty(nameof(Car
public IEnumerable
На этом сущностный класс 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. Ниже показан обновленный код сущностного класса: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
Сущность Order
Для таблицы Orders
Order. Модифицируйте операторы using следующим образом:using System;
using System.ComponentModel.DataAnnotations.Schema;
using AutoLot.Models.Entities.Base;
using Microsoft.EntityFrameworkCore;
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT