2013-07-15 3 views
0

У меня классический сценарий отношения продукта-бренда. И мои классы вроде этого.Нулевой внешний ключ в коде структуры Entity сначала

 

    public class Products 
    { 
     public int ProductID { get; set; } 
     public string ProductName { get; set; } 
     public decimal Price { get; set; } 
     public string PreDescription { get; set; } 

     public int? BrandID { get; set; } 

     //private Brands brand; 
     public virtual Brands Brand 
     { 
      get; //{ if (this.Brand == null) Brand = new Brands(); return Brand; } 
      set; //{ Brand = value; } 
     } 
    } 

    public class Brands 
    { 
     public int BrandID { get; set; } 
     public string BrandName { get; set; } 

     private List products; 
     public virtual List Products 
     { 
      get{ if (this.products == null) products = new List(); return products; } 
      set{ products = value; } 
     } 
    } 

И картографирование как это.

 

    public class ProductsMap : EntityTypeConfiguration{ 
     public ProductsMap() 
     { 
      ToTable("Products"); 
      HasKey(p => p.ProductID).Property(p => p.ProductID) 
      .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 

      this.HasOptional(p => p.Brand).WithMany(b => b.Products); 
     } 
    } 

    public class BrandsMap : EntityTypeConfiguration 
    { 
     public BrandsMap() 
     { 
      ToTable("Brands"); 
      HasKey(b => b.BrandID).Property(b => b.BrandID) 
      .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);   
     } 
    } 

У меня есть два метода, GETALL(), GetByID() Некоторые строки на столе продукт имеет нулевое значение.

Когда я пытаюсь запустить метод GetAll, он бросает Null Exception (марка какого-то продукта возвращается null), но все продукты, получающие GetByID() dosent, бросают любое исключение?

ответ

0

Хотя получение значений из дБ включает связанную таблицу (Продукты) вместе с родительской таблицей (Бренды).

Пример:

вар бренды = context.Brand.include ("Продукты");

+0

Все еще я получаю эту ошибку на методе GetAll(). если в возвращаемых данных есть значение null, а также значение int, оно генерирует исключение. – PolatYerimdar

Смежные вопросы