[英]One-to-one or zero relationship in entity framework
我阅读了一些文章和答案,但没有任何帮助。
我有两个实体:
[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; }
}
我该如何解决这种情况?
问题在于缺少虚拟关键字。
这样的代码对我有用:
[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; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.