2011-02-03 9 views
1

私のコードを確認してください。 LinqをSqlに使用すると値が返されないのはなぜですか?Linq to Sql Selectを使用しても何も戻ってきませんか?

BHS_TimeSheetは、いくつかのレコードを持つ私のデータベーステーブルです。

Model.TimeSheetは、モデルで作成するクラスです。

Private db As DataFactoryDataContext 

Public Sub New() 
    db = New DataFactoryDataContext 
End Sub 

Public Sub New(ByVal repository As DataFactoryDataContext) 
    db = repository 
End Sub 

Public Function GetTimeSheetByProject(ByVal wbs1 As String, ByVal wbs2 As String, ByVal wbs3 As String) _ 
    As List(Of Model.TimeSheet) Implements ITimeSheetRepository.GetTimeSheetByProject 

    Return (From ts In db.BHS_TimeSheets _ 
      Where ts.WBS1.Equals(wbs1) And ts.WBS2.Equals(wbs2) And ts.WBS3.Equals(wbs3) _ 
      Select New Model.TimeSheet(ts.TSBatchNo, ts.Employee, ts.TransDate, ts.WBS1, ts.WBS2, ts.WBS3, ts.LaborCode, _ 
             ts.RegHrs, ts.OvtHrs, ts.SpecialOvtHrs, ts.TransComment, ts.Status, ts.AuthorizedBy, _ 
             ts.RejectReason, ts.ModDate)).ToList 

End Function 
+2

これは多くのコードです。あなたはそれをトリミングできますか? –

答えて

2

あなたのLINQのツーSQL文の

(From ts In db.BHS_TimeSheets 
    Where ts.WBS1.Equals(wbs1) 
     And ts.WBS2.Equals(wbs2) 
     And ts.WBS3.Equals(wbs3) _ 

基本的には、このSQLクエリに対応:

SELECT * FROM dbo.BHS_TimeSheets 
WHERE WBS1 = (value for wbs1) 
    AND WBS2 = (value for wbs2) 
    AND WBS3 = (value for wbs3) 

あなたはSQLでとそれを呼び出す場合は、SQLクエリは、任意の値を返すことをいLinq-to-SQLコードの場合と同じように、wbs1, wbs2, wbs3の同じパラメータを使用するServer Management Studio?

更新:大丈夫ですので、SQLクエリは結果を返します - 次のステップ:Linq-to-SQLのステップにステップごとにアプローチします。まず、これを試してください - あなたは結果を得ますか?

Dim basicQueryResults = (From ts In db.BHS_TimeSheets 
         Where ts.WBS1.Equals(wbs1) 
          And ts.WBS2.Equals(wbs2) 
          And ts.WBS3.Equals(wbs3) 
         ).ToList(); 

あなたの結果リストには.Count > 0がありますか?

もしそうでない場合は、Linq-to-SQLモデルに問題があります。あなたのデータベースを変更し、DBMLファイルを更新していませんか? DBMLファイルを削除してもう一度やり直すことができますか?それは今動作しますか?それとも、あなたはまだ同じ結果を持っていますか?

+0

はい。 SQL Serverで呼び出すと、レコードが返されます。 – howexg

+0

@howexg:私の答えを更新しました - 私の質問を確認できますか?あなたはデータを戻しますか? –

+0

こんにちは 問題を修正しました。パラメータはNULL値を取り、いくつかのテーブルの列は空ではなく、データ型は入力と一致する必要があります。 ありがとう! – howexg

関連する問題