使用LINQ,如何在select运算符的结果中返回字符串常量

使用LINQ,如何在select运算符的结果中返回字符串常量,linq,linqpad,Linq,Linqpad,在LinqPad中,我有以下查询语句 var genre = "Anime & Animation"; var minRating = 3.0; var topNum = 30; var query = (from g in Genres from t in g.Titles where g.Name==genre && t.Instant.Available==true && t.AverageRating

在LinqPad中,我有以下查询语句

var genre = "Anime & Animation";
var minRating = 3.0;
var topNum = 30;

var query = 
    (from g in Genres
    from t in g.Titles 
    where g.Name==genre
    && t.Instant.Available==true
    && t.AverageRating >= minRating
    orderby t.AverageRating descending 
    select new {t.Name, t.Rating, t.AverageRating, t.ShortSynopsis}).Take(topNum);

query.Dump(string.Format("Top {0} {1} Instant Watch Movies with a {2:0.0} minimum average rating sorted by average rating in descending order.",topNum,genre,minRating));
我想在结果集中返回流派字符串变量

另一种提问方式是,使用TSQL,我会“从MyTitles中选择field1、field2,‘动作与冒险’作为流派”。那么在Linq你是如何做到这一点的呢


Seth

您可以通过添加
PropertyName=
来指定匿名类型的其他成员,因此,如果要添加具有某个常量值的属性
类型
,您可以编写:

new { t.Name, t.Rating, t.AverageRating, 
      t.ShortSynopsis, Genre = "Action & Adventure" }
类型的值可能与查询中的
genre
变量或属性
g.Name
相同,因此可以使用此属性(而不是字符串文字):


值得注意的是,如果您只是在匿名类型的构造中使用某些属性名(例如,
t.name
),它只是写入
name=t.name
的快捷方式(编译器会自动复制属性名)。

您检查过该属性名的SQL翻译吗?如何在SQL选项卡中也返回字符串??
new { t.Name, t.Rating, t.AverageRating, 
      t.ShortSynopsis, Genre = g.Name } // Or 'Genre = genre'