linq运算符,如sql中的*(星号)

时间:2009-11-16 12:39:03

标签: linq linq-to-sql

我想选择一个表的所有字段,而只选择第二个表的特定字段。有没有办法像在SQL中使用table。*一样?

 var things = from t in db.table1
              from t2 in db.table2
              where ...Join Clause...
              select new { t.*,t2.onefield}

显然这段代码不起作用,但我认为这是我的讽刺。

如果我使用

select new {t,t2.onefield}

它编译,但是当我将它分配给datagridview的数据源时它会失败。目前我正在为每张桌子写下我需要的每个领域。

感谢。

2 个答案:

答案 0 :(得分:2)

这不是SQL中的好习惯,即使可以使用Linq,也不是Linq的好习惯,除非Linq生成扩展到表的所有列的T-SQL代码。

答案 1 :(得分:2)

您可以做的一件事是:

var things = from t in db.table1
          from t2 in db.table2
          where ...Join Clause...
          select new { MyProperty= t ,t2.onefield}

然后用:

访问T的fieds
var t= things.First();
Console.WriteLine("{0}, {1}, {2}", 
                  t.MyProperty.Field1, 
                  t.MyProperty.Field2, 
                  t.onefield);