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



我有一个使用 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
};

由于您的方法返回常规 IList,您可以做这样的事情吗?

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

。其中myLinqQuery是现有查询。

对于一行,您可以使用

First()//如果没有要返回的值,则抛出错误

FirstOrDefault()//如果没有要返回的值,则不会抛出错误

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

相关内容

  • 没有找到相关文章