C# 将VB.Net Linq语句转换为C

C# 将VB.Net Linq语句转换为C,c#,.net,vb.net,linq,silverlight-4.0,C#,.net,Vb.net,Linq,Silverlight 4.0,我刚刚开始学习C 5.net 4.5,正在转换现有的VB.net Silverlight 4业务应用程序,但我正在努力转换下面的VB.net域服务方法 它没有编译,因为它给了我无效的表达式术语“return”和预期的上下文键工作“by”异常 你能给我一些指导吗 模型 VB C到目前为止还不起作用 在您的C示例中,在设置var1时从不选择BUID,否则它们是等效的 您使用的是什么版本的C?您可能应该将var1声明为var而不是Object,因为您正在分组到C中的保留字组中。请尝试以下操作: var

我刚刚开始学习C 5.net 4.5,正在转换现有的VB.net Silverlight 4业务应用程序,但我正在努力转换下面的VB.net域服务方法

它没有编译,因为它给了我无效的表达式术语“return”和预期的上下文键工作“by”异常

你能给我一些指导吗

模型

VB

C到目前为止还不起作用


在您的C示例中,在设置var1时从不选择BUID,否则它们是等效的


您使用的是什么版本的C?您可能应该将var1声明为var而不是Object,因为您正在分组到C中的保留字组中。请尝试以下操作:

var result = from cat
             in ObjectContext.CabSystemsModelCategories
             group cat by cat.BUID
             into grouping
             select grouping;

好的,这是工作方法

public IQueryable<BusinessUnit> GetBusinessUnits()
{
    var includedBU = from cat in ObjectContext.CabSystemsModelCategories
                                group cat by cat.BUID into grouping
                                select grouping.Key;

    return ObjectContext.BusinessUnits.Include("CabSystemsModelCategories").
            Where((w) => includedBU.Contains(w.ID)).
            OrderBy((o) => o.ID);

}

你需要说明什么不起作用!这是编译错误还是运行时错误?老实说,不工作只会让你获得接近票数的选票。而且你在var1、C代码或IQueryable中遗漏了你的选择。但由于他使用LINQ,我想他使用的是3.5+,所以var应该可以工作。感谢您的回复。现在它给了我一个提示:当前上下文中不存在名称“BUID”,编译错误已更改选择BUID以选择cat.BUID。这样行吗?不行。当前上下文中不存在对名称“cat”的编译错误更改。在C中,group不是一个普通的保留关键字,它是上下文的,仅在LINQ查询中保留。如果代码仅用于收集所有唯一的内置项,则选择分组应能起作用。不确定VB语法…即使您正在回答自己的问题,也建议将其设置为答案。关键是将组更改为其他值VB只允许组,而C只需要组以外的值。另外,使用C插入的键属性,这是你必须在VB中显式执行的。当站点允许我使用2天时,我将执行此操作
var result = from cat in ObjectContext.CabSystemsModelCategories
                    group cat by cat.BUID into group select BUID
var result = from cat
             in ObjectContext.CabSystemsModelCategories
             group cat by cat.BUID
             into grouping
             select grouping;
public IQueryable<BusinessUnit> GetBusinessUnits()
{
    var includedBU = from cat in ObjectContext.CabSystemsModelCategories
                                group cat by cat.BUID into grouping
                                select grouping.Key;

    return ObjectContext.BusinessUnits.Include("CabSystemsModelCategories").
            Where((w) => includedBU.Contains(w.ID)).
            OrderBy((o) => o.ID);

}