希望有人可以帮助我。我正在尝试使用预定义类型的产品基础目录。因此,例如,存在一种简单类型和高级类型的产品,这些类型具有可配置属性。所以我有一个像下面这样的模型,但是我无法将值存储在与产品属性有关系的不同表中。
我在singel ProductDto对象下面添加了一个所需的json输出.Wehere PropertyTypeValue必须是产品上的属性值。
我箍我解释得对。
[Table("Product")]
public class ProductDto
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ProductTypeDto ProductType { get; set; }
}
[Table("ProductType")]
public class ProductTypeDto
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ICollection<PropertyTypeGroupDto> PropertyTypeGroups { get; set; }
}
[Table("PropertyTypeGroup")]
public class PropertyTypeGroupDto
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public virtual ProductTypeDto ProductType { get; set; }
public virtual ICollection<PropertyTypeDto> PropertyTypes { get; set; }
}
[Table("PropertyType")]
public class PropertyTypeDto
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual PropertyTypeGroupDto PropertyTypeGroup { get; set; }
}
[Table("PropertyValue")]
public class PropertyValueDto
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public Guid Id { get; set; }
public string Value { get; set; }
public virtual ProductDto Product { get; set; }
public virtual PropertyTypeDto PropertyType { get; set; }
}
{ productType: { propertyTypeGroups: [ { propertyTypes: [ { propertyTypeValue: null, id: "88c1e9ed-7b03-e411-8ca5-74d4351a6e12", name: "Sample Property 1" }, { propertyTypeValue: null, id: "89c1e9ed-7b03-e411-8ca5-74d4351a6e12", name: "Sample Property 2" } ], id: "87c1e9ed-7b03-e411-8ca5-74d4351a6e12", name: "Sample Group" } ], id: "85c1e9ed-7b03-e411-8ca5-74d4351a6e12", name: "Simple Product", alias: "simpleproduct" }, id: "86c1e9ed-7b03-e411-8ca5-74d4351a6e12", name: "Sample Product 1" }
答案 0 :(得分:0)
您可以在linq查询中明确包含导航属性,如下所示:
var productValue = this.Context.PropertyValues.Include(p => p.Product).FirstOrDefault(pv => pv.Id == someId);