少し背景を説明します。私は Web 開発者で、彼の最初の に取り組んでいWinform
ます。
を使用してEF5
います。テーブルはリレーショナルですが、テーブルには主キーしかありません。が付属していますWinform
。GridView
これGridView
は によって移入されていBindingSource
ます。のDatasource
はBindingSource
、Linq クエリによって埋められています。
Public Class Form1
Private batchEnt As BatchMananger.PrintManagerEntities
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
batchEnt = New BatchMananger.PrintManagerEntities
batchBindingSource.DataSource = (From b In batchEnt.AutomatedBatches Join bd In batchEnt.AutomatedBatchResults On b.ID Equals bd.AutomatedBatchID Where b.BatchName <> "" Select b.ID, b.BatchName, b.Description, b.ScheduleDesc, b.BatchResultEmail, b.BatchSourceEmail, bd.ExecutionDateTime, bd.TotalSuccesful, bd.TotalItems, bd.TotalFail).ToList
Catch ex As Exception
Throw
End Try
End Sub
End Class
私の問題は、結合されたテーブルからではなく、テーブルGridview
からのデータのみが取り込まれていることです。ただし、要素を調べると、結合された結果が返されていることがわかります。クエリからのすべての結果が my に入力されるように、にバインドするにはどうすればよいですか。AutomatedBatches
AutomatedBatchResults
Datasource
BIndingsource
Linq
Gridview
さらに情報が必要な場合はお知らせください。
アップデート
何が間違っていたかがわかった。GridView のプロパティに DataPropertyName を設定していませんでした。DataPropertyName をデータベース フィールドと同じ名前に設定すると、機能しました。また、EF データ モデルで、AutomatedBatch (1) と AutomatedBatchResult (多数) の間の関連付けも作成しました。