2017-06-17 3 views
1

エンティティフレームワーククエリが値を返していません。私はエンティティフレームワークを通してこのクエリを複製したいと思っていました:SELECT name FROM guitarBrands where image = image。だから私はこのコードを以下で試してみた。エンティティフレームワーククエリがasp.netを使用していません

public static string GetBrandByImage(string imageType) 
{ 
    BrandsDBEntities obj = new BrandsDBEntities(); 

    string name = (from g in obj.guitarBrands where g.image == imageType select g.name).ToString(); 

    return name; 
} 

私は本当にエンティティフレームワークを使用して新しくて、本当に皆さんがこれを解決できることを願っています。リストSQLクエリ

よう

+0

いくつかの点があります。詳細な情報を提供してください。それは 'ヌル'ですか?それは空文字列ですか?第二に、LINQで同じクエリを試しましたか? (g => g.name).Select(g => g.name).ToString(); '第3に、あなたは常に'使用しているEFのバージョンはどれですか? – Sentry

答えて

2
(from g in obj.guitarBrands where g.image == imageType select g.name) 

リターンは、クエリ自体にToString呼びかけている

obj.guitarBrands.Where(g => g.image == imageType).First().name; 
+0

一致するものがなく、「First」が呼び出された場合は、次のように記述します(「obj = new BrandsDBEntities()例外を取得します。 – Nkosi

1

(from g in obj.guitarBrands where g.image == imageType select g.name).First().Tostring(); 

または同等の最初の要素を取得します。クエリは、一致が見つからない場合は、述語またはnullに一致する任意のギターブランドから最初nameを返すあるとしてクエリにFirstOrDefaultを使用して最初の

public static string GetBrandByImage(string imageType) { 
    using(var obj = new BrandsDBEntities()) {  
     var name = (from g in obj.guitarBrands 
        where g.image == imageType 
        select g.name).FirstOrDefault(); 

     return name; 
    } 
} 

を列挙する必要があります。

関連する問題