0

userId に一致し、対応する imagepath 文字列を返す非常に単純なメソッドを作成しようとしています。私のコードは次のようなものです:

public string GetImagePath(int _ID)
{
 var imagepath=from s in context.Userinfoes
               where s.UserID==_ID
               select s.UserImage;
 return imagepath.ToString();
}

問題は、linq がデータをロードしておらず、"system.data.object.objectquery1[system.string]" のような文字列をロードしていることです! 以前にも同様の方法を何度も書きましたが、この問題が発生したのは初めてです。

説明:

私は 3 層アーキテクチャを使用しており、これを行う前に edmx を更新しました。問題を解決するために参照を削除して再度追加しましたが、機能しませんでした。

助けてください。

4

2 に答える 2

3

問題はreturn imagepath.ToString()イメージパスにあり、データではありません。それはIQueriableです。したがって、ToString() は「system.data.object.objectquery1[system.string]」を返します。このコードの前に、クエリを繰り返す必要があります。だからこれを試してください:

public string GetImagePath(int _ID)
{
    var imagepath=from s in context.Userinfoes
           where s.UserID==_ID
           select s.UserImage;

    return imagepath.FirstOrDefault().ToString();
}
于 2012-11-13T06:37:47.777 に答える
2

列挙可能なリストから 1 つの項目を返すには、Single()/First() を使用する必要があります

于 2012-11-13T06:37:02.520 に答える