2017-08-02 14 views
1

データベースに2つのテーブルがあり、特定の列からデータを取得するためのクエリを作成しています。しかし、LINQクエリは私に空の結果セットを返しています。私はSOとオンラインで複数の投稿を読み、試しましたFirstOrDefaultFirstSingleSingleOrDefaultです。私はAnyでチェックしようとしましたが、データセットはまだ空です。 LINQPadで同じクエリを実行しても、正しい結果が返されます。LINQクエリは実行時にnullを返します

var connString = from firstTable in _dataContext.Connections 
    join secondTable in _dataContext.Companies on 
    firstTable.CompanyID equals secondTable .CompanyID 
    where secondTable .CompanyName == "Name" 
    select firstTable .ConnectionString; 

私は間違っていますか?

+0

本当に空ですか?それはまだ質問されていないかもしれません。ほとんどのLINQクエリは 'yield'キーワードを使用します。 –

+1

設定ファイルの中で定義されている接続文字列が同じであることを確認してください。同じデータベースに接続していますか?あなたは接続を開いたのですか? –

+0

@ JeroenvanLangen、私はエンティティフレームワークからコードの最初のアプローチを使用しています。私は設定ファイルに接続文字列を持っています。手動で渡すとうまくいきます。しかし、私はそれをデータベースから取得できません。 – Maddy

答えて

1

クエリがLINQPadで動作している場合、クエリが正しい場合、環境に問題があります。切断がどこで発生しているかを確認するには、環境とLINQPadの間の部分を比較する必要があります。

たとえば、_dataContext.Connections.Count()とは何ですか? _dataContext.Companies.Count()と同じです。差異の原因を見つけるまで、クエリのさまざまな部分を比較します。

+0

これは私を助け、私はデータベース名の1文字を持っていると考えました。ワン・キャラクター – Maddy

関連する問題