ورود

View Full Version : ایجاد رابطه در ValueObject



mmbguide
پنج شنبه 07 تیر 1403, 20:57 عصر
سلام خدمت دوستان

من یک جدول با نام Report دارم:

public class Report
{
public Guid? Id { get; set; }
public string? ReportNo { get; set; }
public DateTime? Date { get; set; }
}


یک ValueObject با نام NDTStatus دارم:

public class NDTStatus
{
public Guid? ReportId { get; set; }
public bool Done { get; set; }
}


یک جدول با نام LineJoint دارم که یکی از Propertyها از نوع ValueObjectهست:

public class LineJoint
{
public Guid? Id { get; set; }
public ValueObjects.NDTStatus PT { get; set;
}


سوالم این هستش که چطور میتونم بین ReportId موجود در ValueObject و جدول Report از طریق FluentApi رابطه ایجاد کنم. تشکر

mmbguide
چهارشنبه 13 تیر 1403, 17:29 عصر
سلام. استفاده از OwnsOne روش صحیح ایجاد ارتباط هست. در یک Entity می بایست چندین Property از نوع ValueObject تعریف میکردم.

builder
.OwnsOne(v => v.PTOrifice, x =>
{
x.Property(x => x.NDTNo).HasMaxLength(LineJoint.NDTNoMaxLength).Is Required(false);
x.HasOne<Domain.Entities.Piping.NDTTypes.NDTType>().WithMany().HasForeignKey(x => x.NDTTypeId);
x.HasOne<Domain.Entities.Piping.Requests.Request>().WithMany().HasForeignKey(x => x.RequestId);
x.HasOne<Domain.Entities.Piping.Reports.Report>().WithMany().HasForeignKey(x => x.ReportId);
x.HasOne<Domain.Entities.Piping.Results.Result>().WithMany().HasForeignKey(x => x.ResultId);
});