我正在使用下面的代码,由于某种原因,我无法使用var声明我的变量。我是ASP / C#的新手,所以请放轻松。我环顾四周,但找不到正确的方法:
var brandslist = from brand in brandDB.brands
join brand_family in brandDB.brand_family on brand.brand_family_id equals brand_family.bf_id
orderby brand_family.brand_family_name
orderby brand.priority
orderby brand.genre_id
select brand_family.brand_family_name, priority, roll_image;
感谢任何可以告诉我进行这项工作的正确方法的人。
最佳答案
如果它是一个局部变量,并且查询本身是有效的,则可以。
但是,查询表达式无效。只看最后一行,这是:
select brand_family.brand_family_name, priority, roll_image;
应该可能是:
select new { brand_family.brand_family_name,
brand.priority,
brand.roll_image };
值得仔细研究一下编译器错误-它通常会给出关于错误的合理解释。
接下来,您的订购几乎肯定是错误的-我非常怀疑这是否符合您的要求。要表达多个顺序,通常只需列出它们,并用逗号分隔,如下所示:
var brandslist = from brand in brandDB.brands
join brand_family in brandDB.brand_family
on brand.brand_family_id equals brand_family.bf_id
orderby brand_family.brand_family_name,
brand.priority,
brand.order_id
select new { brand_family.brand_family_name,
brand.priority,
brand.roll_image };
这将转换为
OrderBy
调用,然后转换为随后的ThenBy
调用-将brand_family_name
视为主要排序顺序,将其他视为次要排序。
关于c# - 为什么在这种情况下不能使用var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5640773/