Asp.net mvc Fluent API映射另一方(如果为1-1关系)

Asp.net mvc Fluent API映射另一方(如果为1-1关系),asp.net-mvc,Asp.net Mvc,我使用code first和Fluent API在两个表之间建立了关系。这是可行的,模式是使用正确的字段和键分配生成的。然而,我的问题是,我需要能够在我的结果模型中说SupplyPoint.SupplyPointPricing。我下面所说的只是给了我另一条路 我想一定有办法保持我现有的结构,但只是映射供应点 public partial class SupplyPoint { [Key] public int SupplyPointId { get

我使用code first和Fluent API在两个表之间建立了关系。这是可行的,模式是使用正确的字段和键分配生成的。然而,我的问题是,我需要能够在我的结果模型中说SupplyPoint.SupplyPointPricing。我下面所说的只是给了我另一条路

我想一定有办法保持我现有的结构,但只是映射供应点

   public partial class SupplyPoint
    {

        [Key]
        public int SupplyPointId { get; set; }
        public string SupplyPointName { get; set; }


    }
    public class SupplyPointPricing
    {
        public int SupplyPointPricingId { get; set; }
        public int? SupplyPointId { get; set; }

        [ForeignKey("SupplyPointId")]
        public virtual SupplyPoint SupplyPoint { get; set; }

    }
然后我使用fluentapi,这使我得到了表和我期望的模式之间的1-1

    modelBuilder.Entity<SupplyPointPricing>()
      .HasOptional(a => a.SupplyPoint)
      .WithMany()
      .HasForeignKey(u => u.SupplyPointId);
modelBuilder.Entity()
.has可选(a=>a.SupplyPoint)
.有很多
.HasForeignKey(u=>u.SupplyPointId);

上次我遇到这个问题时,我不得不改变设计,在SupplyPoint表中有一个外键。在前一次比赛中,这是可以的,因为这是一个1-1的要求,总是有一个匹配的记录。这一次我需要保持这种结构,因为SupplyPoint和SupplyPoint定价之间是1-0

这就是我在不使用Fluent映射的情况下始终与模型建立1对1关系的方式:

public partial class SupplyPoint
{
    [Key]
    public int SupplyPointId { get; set; }

    public virtual SupplyPointPricing SupplyPointPricing { get; set; }
}

public class SupplyPointPricing
{
    [Key, ForeignKey("SupplyPoint")]
    public int SupplyPointId { get; set; }

    public virtual SupplyPoint SupplyPoint { get; set; }
}
如您所见,
SupplyPointPricing
没有自己的Id,只有SupplyPoint的Id,它在1对1关系中充当键

我唯一不确定的是
SupplyPointId
是否可以是一个可为null的int

这不会在SupplyPoint上创建外键,因此如果没有定价,则
SupplyPoint.SupplyPointPricing
属性将为空