实体框架一对多关于自我的递归关系

时间:2016-12-19 09:46:55

标签: c# entity-framework recursion

我遇到了问题,并且不确定这是否是解决问题的最佳方式。

我有一个实体类别,它可以有一个子类别列表(子类别)并且有一个父类别(唯一没有父类别的类别将是“根”类别。这是正确的方法吗?它?

类别类

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
   if (indexPath.row >= 0 && indexPath.row < 3) {
        return CGSize(width: self.view.frame.size.width / 3.15, height: 150)
        // here give size for 3 collectionviewcell in one row . i use 3.5 beacause of i put spacing 10 pix left and right side of collectionview.
   }
   else if (indexPath.row >=3 && indexPath.row < 5){
       return CGSize(width: self.view.frame.size.width / 2.20, height: 150)
        // here give size for 2 collectionviewcell in one row.
   }else{
      return CGSize(width: self.view.frame.size.width / 3.15, height: 150)
   }

}

Fluent API ModelBuilder

public class Category
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int? ParentId { get; set; }
    public virtual Category ParentCategory { get; set; }
    public virtual IList<Category> ChildCategories { get; set; }
    public virtual IList<Product> Products { get; set; }
}

我的种子方法如下:

//Category Parent - Child
    modelBuilder.Entity<Category>()
        .HasOptional<Category>(category => category.ParentCategory)
        .WithMany(category => category.ChildCategories)
        .HasForeignKey(category => category.ParentId);

现在问题是,在种子中我添加了2个类别,1个父亲1个孩子。当我调试以检查结构是否良好时,它实际上是正确的。唯一真正让我烦恼的是这个结构:

ParentCategory - &gt; ChildCategory - &gt; ParentCategory。

由于它是递归的,子对象将有一个对象“ParentCategory”,但实际上我只需要它的ID,而不是整个对象。

这是正常的还是有解决方法?

0 个答案:

没有答案