mvc c#nonmapped属性,用于检索总行数

时间:2011-11-02 13:00:17

标签: c# asp.net-mvc entity-framework

我有2个班级,有一对多的关系

public class team
{
  public int ID {get;set;}

  **public int TotalPlayers{get{return registeredPlayers.Count();}}**

  //edit
  private ICollection<registeredplayers> registeredplayers;
  public ICollection<registeredplayers> registeredPlayers{
     get {return registeredplayers ?? (registeredplayers = new List<registeredplayers>());}
     set {registeredplayers = value;}
  }
}

public class registeredplayers
{
   public int ID {get;set;}
   public string name {get;set;}
   public int teamid {get;set;}
   public virtual team team {get;set;}
}

所以每当我打电话给该物业都会返回0 ,即使有多名玩家注册。

TotalPlayers = entity.TotalPlayers.First(p => p.ID == 1);
int totalplayers = team.TotalPlayers

任何建议都表示赞赏。

感谢!!!

1 个答案:

答案 0 :(得分:0)

我不完全确定要求的是什么,但我不知道所提供的代码是如何编译的。

如何返回计数取决于您将使用的IEnumerable的实现,接口本身不提供执行此操作的方法的原型。我倾向于使用通用列表,所以我会使用:

public class team
{
  public int ID {get;set;}

  public int TotalPlayers{get{return registeredplayers.Count();}}

  public System.Collections.Generic.List<registeredplayers> registeredplayers{get;set;}
}

也是行

TotalPlayers = entity.TotalPlayers.First(p => p.ID == 1);

对我来说没有多大意义,因为这个属性只有一个'get'访问器,因此你无法为它赋值。

希望这有帮助,如果我错过了这一点,请回复更详细的说明。