我阅读了一些文章和答案,但没有任何帮助。
我有两个人:
[DataContract(IsReference = true)]
public class ProductType : IEntity
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string Article { get; set; }
//.....
}
[DataContract(IsReference = true)]
public class Product
{
[Key]
[DataMember]
public int ProductTypeId { get; set; }
[DataMember]
[ForeignKey("ProductType")]
public ProductType ProductType { get; set; }
[DataMember]
public decimal Quantity { get; set; }
}
表中的ProductTypeId列是主键。我希望在这里有一对一或零关系。但我不能这样做:
// Configure the primary key for the OfficeAssignment
modelBuilder.Entity<Product>()
.HasKey(t => t.ProductTypeId);
// Map one-to-zero or one relationship
modelBuilder.Entity<Product>()
.HasRequired(t => t.ProductType)
.WithOptional(t => t.Product);
因为我在ProductType实体中没有Product属性。
我试过了,但ProductType属性为null:
[DataContract(IsReference = true)]
public class Product
{
[Key]
[ForeignKey("ProductType")]
[DataMember]
public int ProductTypeId { get; set; }
[DataMember]
public ProductType ProductType { get; set; }
[DataMember]
public decimal Quantity { get; set; }
}
我该如何解决这种情况?
答案 0 :(得分:0)
问题在于错过了虚拟关键字。
这样的代码对我有用:
[DataContract(IsReference = true)]
public class Product
{
[Key]
[ForeignKey("ProductType")]
[DataMember]
public int ProductTypeId { get; set; }
[DataMember]
public virtual ProductType ProductType { get; set; }
[DataMember]
public decimal Quantity { get; set; }
}