2016-10-25 137 views
-1
ID | Parent | Name 
----------------------------------------- 
1 | 0  | a 
2 | 0  | b 
3 | 2  | c 

[Table("Cats")] 
    public class CategoriesModel 
    { 
     [Key] 
     public int Id { get; set; } 
     public int? Parent { get; set; } 
     public string Name { get; set; } 
     public int IsDr { get; set; } 
     public virtual Submenu HasSubmenu { get; set; } 
     public virtual CategoriesModel ParentMdl { get; set; } 
     public virtual ICollection<CategoriesModel> ChildrenMdl { get; set; } 
    } 
// My virtual class 
    public partial class Submenu 
    { 
     public virtual int ID { get; set; } 
     public virtual bool Has { get; set; } 
     public virtual CategoriesModel Parent { get; set; } 
     public virtual ICollection<CategoriesModel> ChildrenMdl { get; set; } 
    } 

當行沒有孩子的(意味着沒有行具有就像任何ID)的我可以添加虛擬對象到我的模型嗎?

例如:ID沒有。 還沒有孩子,所以子菜單。有應該是false !!

我不知道我該怎麼做,以及在哪裏做! 子菜單不是我桌子的一部分,它是虛擬的

可以做到這一點嗎?

+0

什麼是RequestModel? – Marusyk

+0

對不起@MegaTron,CategoriesModel是對的! –

+0

請澄清您的具體問題或添加其他詳細信息,以確切地突出顯示您的需求。正如目前所寫,很難確切地說出你在問什麼。請參閱[如何提問](http://stackoverflow.com/help/how-to-ask)頁面以獲得澄清此問題的幫助。 – Marusyk

回答

0

如果我正確inderstand,然後Has應該返回......

  • true - 如果ChildrenMdl有1個或多個元素;
  • false - 如果ChildrenMdl沒有元素(或者甚至爲空)。

這是可以實現如下:

using System.Linq; 

public partial class Submenu 
{ 
    // ... 
    public bool Has 
    { 
     get { return ChildrenMdl != null && ChildrenMdl.Any(); } 
    } 
    // ... 
} 

沒有set { ... }的財產,它根本就沒有意義。

另外我刪除了virtual關鍵字。僅當您希望允許子類覆蓋屬性的實現時,才使用virtual。如果在不需要的時候使用,那麼它會使代碼運行速度稍慢。

+0

完全可以幫助我,但是我發現瞭如下的新方法function:'public CategoriesModel()HasSubmenu = new CategoriesSubmenu(); HasSubmenu.Has.Equals(!(ChildrenMdl!= null && ChildrenMdl.Any()));}'。一個新問題!你的上述解決方案返回** false **,我該如何反轉爲真!!? –

相關問題