使用LINQ to SQL进行简单的LINQ查询,认为我做错了什么

时间:2014-03-18 20:54:57

标签: c# sql linq entity-framework

我的项目的LINQ to SQL部分有一个表。

Screenshot

我只是想尝试执行一个简单的查询:

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运算符和方法。

我觉得我错过了一些非常简单的东西......任何帮助?

2 个答案:

答案 0 :(得分:6)

您只选择了ID mlb_com_id

select a.mlb_com_id;

将select子句更改为

select a;

这允许您访问结果集上a的所有公共成员。


Pellared

编辑(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);
        }
    }
}