我的项目的LINQ to SQL部分有一个表。
我只是想尝试执行一个简单的查询:
public static string GetMLBID(int fk_players_id)
{
using (MLBDataClassesDataContext context = new MLBDataClassesDataContext())
{
var query = from a in context.players
where a.fk_player_type_id == fk_players_id
select a.mlb_com_id;
foreach (var b in query)
{
Console.WriteLine(b.); //<-- I don't get the properties listed in the "players" table that i linked in the imgur link.
}
}
}
从谷歌的所有例子中我都有“b。”,我所拥有的表中的属性应该弹出..但是没有列出。我只获得简单的LINQ运算符和方法。
我觉得我错过了一些非常简单的东西......任何帮助?
答案 0 :(得分:6)
您只选择了ID mlb_com_id
select a.mlb_com_id;
将select子句更改为
select a;
这允许您访问结果集上a
的所有公共成员。
编辑。 (Pellared的补充点是扩展方法语法不需要Select子句,因此不会导致错误):
您也可以使用lamba表达式更改查询(很多人都喜欢)
public static string GetMLBID(int fk_players_id)
{
using (MLBDataClassesDataContext context = new MLBDataClassesDataContext())
{
var query = context.players
.Where(a => a.fk_player_type_id == fk_players_id);
foreach (var b in query)
{
Console.WriteLine(b.mlb_com_id);
}
}
}
答案 1 :(得分:1)
您需要将元素作为列表获取,然后您应该能够访问属性。
public static string GetMLBID(int fk_players_id) {
using (MLBDataClassesDataContext context = new MLBDataClassesDataContext())
{
var query = (from a in context.players
where a.fk_player_type_id == fk_players_id
select a).ToList();
foreach (var b in query)
{
Console.WriteLine(b.first_name);
}
}
}