Sql server连接/子选择问题
我在数据库中有两个表
Team:Id(int PK), Name(nvarchar)
,
Player:Id(int PK), Name(nvarchar), Age(int), TeamId(int FK)
还有以下类
class Team
{
public int Id{get;set;}
public string Name{get;set;}
}
我
class Player
{
public int Id{get;set;}
public string Name{get;set;}
public int Age{get;set;}
public int TeamId{get;set;}
}
,并且
class TeamInfo
{
public Team Team{get;set;}
public List<Player> Players{get;set;}
}
想从数据库中提取 List
。 我正在使用 Ado.net,没有 ef 或 linq2sql...我想问查询数据库的最佳方法是什么?
现在我得到了所有球队,对于每个球队,我通过连接查询表玩家,但可以肯定这不是最好的方法。
I have two tables in the database
Team:Id(int PK), Name(nvarchar)
and
Player:Id(int PK), Name(nvarchar), Age(int), TeamId(int FK)
I also have the following classes
class Team
{
public int Id{get;set;}
public string Name{get;set;}
}
and
class Player
{
public int Id{get;set;}
public string Name{get;set;}
public int Age{get;set;}
public int TeamId{get;set;}
}
and
class TeamInfo
{
public Team Team{get;set;}
public List<Player> Players{get;set;}
}
I want to extract from the databse a List<TeamInfo>
.
I am using Ado.net, no ef or linq2sql... and I am asking what is the best way to query the db?
Right now I get all teams and for each team I query the table players with a join but for sure it's not the best way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会在sql server中使用参数@teamid创建一个sp,然后为团队执行sp并获取玩家信息
i'd create an sp in sql server with the parameters @teamid, then execute the sp for the team and get the player info
您应该使用
join
查询从数据库读取所有信息:使用此查询作为
SqlCommand
的一部分,并将数据获取到DataTable
中。然后:注意: 可能您需要在此处使用
LEFT
加入,而不是INNER
,否则您将无法获得没有玩家的团队。you should read all info from database with
join
query:Use this query as part of
SqlCommand
and get data intoDataTable
. Then:NOTE: Probably you need a
LEFT
join here instead ofINNER
since you won't get teams without players otherwise.