I EFに問題があります。 実体は常にnullです。私はこれまでに何の解決策も得ていませんでした。ここでレイジーロードが機能していません。関連するエンティティは常にnullです。
はモデルです:だから
public class Categories
{
public int ID { get; set; }
public string Name { get; set; }
public int AtpID { get; set; }
public virtual ICollection<SubCategories> SubCategories { get; set; }
}
public class SubCategories
{
public int ID { get; set; }
public string Name { get; set; }
public int CategoryID { get; set; }
public string LinkToProducts { get; set; }
}
、すべてのCategorieは、より多くのサブカテゴリがあります。私は、データベースを埋めシード方法で ので、私が持っているデータ:それAltought
var categories = new List<Categories>
{
new Categories{Name="Abgasanlage", ID=1},
new Categories{Name="Elektrik",ID=2},
new Categories{Name="Filter", ID=3},
new Categories{Name="Karosserie", ID=4},
new Categories{Name="Kuhlunkg",ID=5}
};
categories.ForEach(s => context.Categories.Add(s));
context.SaveChanges();
var subCategories = new List<SubCategories>
{
new SubCategories{Name="Montageteile", ID=1, CategoryID=1},
new SubCategories{Name="Lamdasonde",ID=2, CategoryID=1},
new SubCategories{Name="Anlasser", ID=3, CategoryID=2},
new SubCategories{Name="Luftfilter", ID=4, CategoryID = 3},
new SubCategories{Name="Ohlfilter", ID=5, CategoryID = 3},
new SubCategories{Name="Sonstige", ID=6, CategoryID = 4},
new SubCategories{Name="Wasserpumpe", ID=7, CategoryID = 5}
};
subCategories.ForEach(s => context.SubCategories.Add(s));
context.SaveChanges();
は、関連するエンティティも含める()、nullであると、常にnullで、そのevrythingがOKであると思われます。
私はこの方法を試してみました:
Models.Categories entity = db.Categories.Where(m => m.ID == 3)
.Include(m => m.SubCategories)
.FirstOrDefault();
しかしentity.SubCategoriesは常にnullです。
との関連エンティティが、私は遅延読み込みが作動している複数の関連エンティティを、持っている私のプロジェクトで
var setting = (from s in db.Categories.Include("SubCategories")
where s.ID == 3
select s).FirstOrDefault();
nullでも含めます。
これらのモデル(カテゴリとサブカテゴリ)でのみ問題が発生します。 私は間違っていますか?
Oh..yes.I私の答えも更新しました:) – Sampath