0

私はC#5(.net 4.5)を学び始めたばかりで、既存のVB.Net Silverlight 4ビジネスアプリケーションを変換する過程にありましたが、以下のVb.Netドメインサービスメソッドを変換するのに苦労しています。

「無効な式の用語「return」」と「Expectedcontectualkeywork'by'」の例外を与えてコンパイルしていません。

指導をお願いします。

モデル

ここに画像の説明を入力してください

VB

Public Function GetBusinessUnits() As IQueryable(Of BusinessUnit)

    Dim var1 = From cat In ObjectContext.CabSystemsModelCategories
                Group cat By cat.BUID Into Group
                Select BUID

    Return ObjectContext.BusinessUnits.Include("CabSystemsModelCategories").
                        Where(Function(w) var1.Contains(w.ID)).
                        OrderBy(Function(o) o.ID)

End Function

これまでのC#(機能していません)

public IQueryable<BusinessUnit> GetBusinessUnits()
{

        object var1 = from cat in ObjectContext.CabSystemsModelCategories
                    group cat by cat.BUID into group

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

}

編集

選択を含めるようにコードを変更すると、「無効な式の用語'select'」という追加の例外が発生します。

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

3 に答える 3

1

C#で予約語である「グループ」にグループ化しています。これを試して:

var result = from cat
             in ObjectContext.CabSystemsModelCategories
             group cat by cat.BUID
             into grouping
             select grouping;
于 2012-09-27T09:56:26.087 に答える
0

C#の例ではSelect BUID、セットアップ時にvar1他の方法で同等になることはありません。

どのバージョンのC#を使用していますか?おそらくの代わりにvar1として宣言する必要がありますvarObject

于 2012-09-27T09:33:56.467 に答える
0

わかりました、これが作業方法です。

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);

}
于 2012-09-27T13:11:01.820 に答える