从查询中选择引用的数据而不引用表?

时间:2011-05-09 18:25:52

标签: linq linq-to-sql

我有一个使用LINQ-to-SQL的工具,有时我只需要一行我提供的文本数据。在过去,我做过这样的事情:

results = (from x in [tablename] select new {myValue1 = "TextValue1", myValue2 = "TextValue2"}).Distinct();

但这需要[tablename]中至少有一行,这不再是我可以依赖的东西。

编辑: 更好的例子,知道为什么我需要这样做;我需要这个查询(我可以在我的程序中编辑)以返回“结果”中的所有内容并正确排序:

results = from z in (
 from x in [tablename]
 select new 
 {
  myValue1 = "TextValue1",
  myValue2 = "TextValue2"
 }
).Union(
 from y in [tablename]
 select new 
 {
  y.myValue1,
  y.myValue2
 }
)
orderby z.myValue1,z.myValue2
select new 
{
 z.myValue1,
 z.myValue2
};

2 个答案:

答案 0 :(得分:1)

既然你的方法返回一个普通的IList,你可以这样做吗?

var results = new ArrayList();
results.Add(new {myValue1 = "First", myValue2 = "First"});
results.AddRange(myLinqQuery.ToList());
return results;

... myLinqQuery是您现有的查询。

答案 1 :(得分:0)

您可以使用

一行
  

First()//如果没有要返回的值,则会引发错误

  

FirstOrDefault()//如果没有返回值

,则不会抛出错误
    results = (from x in [tablename] select new {myValue1 = 
"TextValue1", myValue2 = "TextValue2"}).Distinct().FirstOrDefault();