Я запустил миграцию для своего решения и получаю следующую ошибку.
Свойство или навигацию «ClientNotes» нельзя добавить к типу сущности «Клиент», поскольку свойство или навигация с такое же имя уже существует в типе сущности «Клиент».
Это моя сущность клиента:
using System;
using System.Collections.Generic;
using JobsLedger.INTERFACES;
namespace JobsLedger.DATA.ENTITIES
{
#nullable enable
public class Client : IEntityBase, IAuditedEntityBase
{
public Client()
{
ClientNotes = new List<Note>();
Jobs = new List<Job>();
}
public string ClientNo { get; set; } = default!;
public bool Company { get; set; }
public string? CompanyName { get; set; }
public string? Abn { get; set; }
public bool IsWarrantyCompany { set; get; }
public bool RequiresPartsPayment { set; get; }
public string? ClientFirstName { get; set; }
public string ClientLastName { get; set; } = default!;
public string? Email { get; set; }
public string? MobilePhone { get; set; }
public string? Phone { get; set; }
public string? Address1 { get; set; }
public string? Address2 { get; set; }
public string? BankName { get; set; }
public string? BankBSB { get; set; }
public string? BankAccount { get; set; }
public bool Active { get; set; }
public DateTime? DateDeActivated { get; set; }
public bool Activity { get; set; }
// One warranty company client to a job.
public int? WarrantyCompanyId { get; set; }
public virtual Job? WarrantyCompany { get; set; }
// One suburb to a client.
public int? SuburbId { get; set; }
public virtual Suburb? Suburb { get; set; }
// If its a warranty company then we simply link it one to one to the brand id.
public virtual Brand? Brand { get; set; }
// Multiple notes for each client.
public virtual ICollection<Note>? ClientNotes { get; set; }
// Multiple jobs for each client.
public virtual ICollection<Job>? Jobs { get; set; }
public virtual ICollection<Job> WarrantyCompanyJobs { get; } = default!;
public int Id { get; set; }
}
#nullable disable
}
Это моя сущность заметки:
using JobsLedger.INTERFACES;
using System;
using System.Collections.Generic;
using System.Text;
namespace JobsLedger.DATA.ENTITIES
{
public class Note : IEntityBase, IAuditedEntityBase
{
#nullable enable
public int Id { get; set; }
public string? Details { get; set; }
public int? JobId { get; set; }
public virtual Job? Job { get; set; }
public int? ClientId { get; set; }
public virtual Client? Client { get; set; }
public int? NoteTypeId { get; set; }
public virtual NoteType? NoteType { get; set; }
}
#nullable disable
}
Используя Fluent API, и поэтому я добавляю заметки к клиенту ... имейте в виду, что у меня может быть несколько заметок для каждого клиента ...
modelBuilder.Entity<Note>()
.HasOne(j => j.Client)
.WithMany(s => s.ClientNotes)
.HasForeignKey(j => j.ClientId)
.IsRequired(false);
Однако заметки не являются обязательными. Вы можете записать одну или несколько заметок и т. д. c .. У меня есть ряд похожих на это отношений, и я считаю, что они работают, но по какой-то причине это указывает на то, что у меня есть другое свойство с таким же именем ..
Это может быть заметка клиента - нужно, чтобы она была связана с клиентом, или это может быть заметка о работе - связать ее с работой. Не могу иметь clientId для служебной записки или наоборот ... например, идентификатор клиента должен быть нулевым, если это служебная записка ..
Что я делаю неправильно и почему?