Я уже много читал, но не смог найти решение моей проблемы.EF Обязательно для необязательных отношений, не используя правильные столбцы для FK
Я пытаюсь что-то вроде этого я нарисовал очень быстро
Первого Try:
public class CarMap : EntityTypeConfiguration<Car>
{
public CarMap()
{
ToTable("Cars", Constants.Schema);
Property(t => t.EngineId);
HasRequired(x => x.SPropertyPolicyInsurance).WithMany().HasForeignKey(x => x.SPropertyPolicyInsuranceId);
}
}
public class Car : MyBase
{
public int EngineId { get; set; }
public virtual Engine Engine { get; set; }
}
public class EngineMap : EntityTypeConfiguration<Engine>
{
public EngineMap()
{
ToTable("Engines", Constants.Schema);
Property(t => t.MyField1).HasColumnType("nvarchar").HasMaxLength(128).IsRequired();
Property(t => t.MyField2).HasColumnType("nvarchar").HasMaxLength(128).IsRequired();
Property(t => t.MyField3).HasColumnType("bit").IsRequired();
}
}
public class Engine : MyBase
{
public string MyField1 { get; set; }
public string MyField2 { get; set; }
public bool MyField3 { get; set; }
public virtual Car Car { get; set; }
}
Используя это решение, он создает новый столбец на моем столе двигателя, что Я не хочу ...
Second Try:
Изменение CarMap на следующий код:
public class CarMap : EntityTypeConfiguration<Car>
{
public CarMap()
{
ToTable("Cars", Constants.Schema);
Property(t => t.EngineId);
HasRequired(x => x.Engine).WithOptional(p => p.Car);
}
}
Проблема в том, что она не использует столбец EngineId хранить свои ключевые ценности FK ...
Спасибо большое за ваша помощь в любом случае ...