我有一个经典的场景产品-品牌关系。我的课就是这样。
公开课产品
{
公共 int ProductID { 获取;放; }
公共字符串产品名称 { 获取;放; }
公共小数价格 { 得到;放; }
公共字符串 PreDescription { 获取;放; }
公共诠释?品牌 ID { 获取;放; }
//自有品牌品牌;
公共虚拟品牌 Brand
{
得到; //{ if (this.Brand == null) Brand = new Brands(); 返回品牌;}
放; //{ 品牌 = 价值; }
}
}
公共类品牌
{
公共 int BrandID { 获取;放; }
公共字符串 BrandName { 获取;放; }
私有列表产品;
公共虚拟列表产品
{
get{ if (this.products == null) products = new List(); 退货;}
设置{产品=价值;}
}
}
和这样的映射。
公共类 ProductsMap : EntityTypeConfiguration{
公共 ProductsMap()
{
ToTable("产品");
HasKey(p => p.ProductID).Property(p => p.ProductID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
this.HasOptional(p => p.Brand).WithMany(b => b.Products);
}
}
公共类 BrandsMap : EntityTypeConfiguration
{
公共品牌地图()
{
ToTable("品牌");
HasKey(b => b.BrandID).Property(b => b.BrandID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
}
我有两种方法,GetAll()、GetByID() Product 表上的某些行具有 Null 值。
当我尝试运行 GetAll 方法时,它会抛出 Null 异常(某些产品的品牌返回 null),但是通过 GetByID() 获取的所有产品都不会抛出任何异常?