У меня есть таблица «Job», которая содержит задания. Дело в том, что Джобс не всегда делается за один раз. У вас может быть работа, в которой много посещений. Я намеревался представить это как другую работу, но связал ее с исходной работой через self referencing linkId.aspnet core entity framework 7 self referencing "job" 1 to many table
У меня возникли проблемы с представлением этого с использованием свободного API. Его отношение «один к многим». Одна работа может иметь много посещений и, следовательно, ряд ссылок ссылается на оригинальную работу. Идентификатор ссылки вернется к исходному идентификатору задания. Его также необязательно, так как большинство рабочих мест могут быть завершены за один раз.
Я искал это, но его трудно привести другие примеры к этому примеру, так как многие из них являются один к одному, а также те, которые дают examples один из многих, похоже, делает это, используя EF6, который отличается.
Моя таблица работа:
using System;
namespace JobsLedger.Model.Entities
{
public class Job : IEntityBase
{
public int Id { get; set; }
public string Model { get; set; }
public string Serial { get; set; }
public string ProblemDetails { get; set; }
public string SolutionDetails { get; set; }
public DateTime JobDate { get; set; }
public int BrandId { get; set; }
public int JobTypeId { get; set; }
public int StatusId { get; set; }
public int ClientId { get; set; }
public int UserId { get; set; }
public int? LinkId { get; set; } //If there are more than one job callout eg back to fit parts.
public Job MultipleJobVisits { get; set; }
}
}
Я уверен, что у меня есть это неправильно:
// Job
modelBuilder.Entity<Job>().Property(j => j.Model).HasMaxLength(100);
modelBuilder.Entity<Job>().Property(j => j.Serial).IsRequired();
modelBuilder.Entity<Job>().Property(j => j.ProblemDetails).HasMaxLength(100);
modelBuilder.Entity<Job>().Property(j => j.SolutionDetails).HasMaxLength(500);
modelBuilder.Entity<Job>().Property(j => j.JobDate);
modelBuilder.Entity<Job>().Property(j => j.Notes).HasMaxLength(1000);
modelBuilder.Entity<Job>().Property(j => j.BrandId);
modelBuilder.Entity<Job>().Property(j => j.JobTypeId);
modelBuilder.Entity<Job>().Property(j => j.StatusId);
modelBuilder.Entity<Job>().Property(j => j.ClientId);
modelBuilder.Entity<Job>().Property(j => j.UserId);
modelBuilder.Entity<Job>().HasOne(x => x.Id)
.WithMany(x => x.LinkId)
.ForeignKey(x => x.Id)
.Required(false);
Как я представляю один ко многим ссылкой себя в EF7 и свободно API и который необязательный?
EDIT: в то время как это оленья кожа обеспечивают синтаксическую ошибку я должен сказать, что я не уверен, если его ОК
modelBuilder.Entity<Job>().HasMany(j => j.LinkedJobs).WithOne().IsRequired(false);
Любая помощь по этому вопросу ценится ... Я нашел драгоценный немного в пути знания о том, как настроить один ко многим отношений самих ссылающимися ...