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 没有。 1 没有任何子女,因此子菜单。有应为 false !!
我不知道我该怎么做,以及在哪做! 子菜单不是我的表格的一部分,它是虚拟的
能做到吗?
答案 0 :(得分:0)
如果我理解正确,那么Has
应该返回......
true
- 如果ChildrenMdl
有一个或多个元素; false
- 如果ChildrenMdl
没有元素(或者甚至可能为空)。这可以通过以下方式实现:
using System.Linq;
public partial class Submenu
{
// ...
public bool Has
{
get { return ChildrenMdl != null && ChildrenMdl.Any(); }
}
// ...
}
该属性没有set { ... }
,它根本就没有意义。
我还删除了virtual
关键字。仅当您希望允许子类覆盖属性的实现时才使用virtual
。如果在不需要时使用,则会使代码运行得稍慢。