Ste*_*ath 6 collections entity-framework iqueryable poco
假设我有一个包含0个或更多玩家的Team类.
该播放器类很简单:
public class Player
{
public long Id { get; set; }
public string Name { get; set; }
public Team Team { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
但最好定义Team类?
选项1
public class Team
{
public long Id { get; set; }
public string Name { get; set; }
public ICollection<Player> Players { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
选项2:
public class Team
{
public Team()
{
Players = new Collection<Player>();
}
public long Id { get; set; }
public string Name { get; set; }
public ICollection<Player> Players { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
选项3:
public class Team
{
public long Id { get; set; }
public string Name { get; set; }
public IQueryable<Player> Players { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
选项4:
public class Team
{
public long Id { get; set; }
public string Name { get; set; }
public ObjectSet<Player> Players { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
首先,让我们免除不可接受的选择.备选方案3并不正确; 我们在对象空间,而不是LINQ to Entities空间.备选方案4也不对; ObjectSet用于ObjectContext,而不是POCO类型.
留下1和2.它们都能正常工作.如果您不选择,实体框架将在从数据库中实现相关实例时初始化集合.但是,选项2确实具有以下优点:您可以Team在将自己的代码保存到数据库并将其读回之前在自己的代码中使用new .所以我可能会选择那个.
| 归档时间: |
|
| 查看次数: |
1539 次 |
| 最近记录: |