Left Join In Entity Framework 6
У меня есть старый код SQL, который использует левое соединение при запросах из базы данных. Я понятия не имею, как это сделать с помощью EF, но я могу представить, что это намного проще. (Новейшая версия VB.NET)
Вот код SQL:
'Now Change each of the dimension values on the EDD stack to EDD dimension Values
' - if Not deleted And on the stack
SqlString = "SELECT * FROM StackUp " +
"LEFT JOIN StackUpItems On IdStackUp=StackUpID " +
"LEFT JOIN DimensionValues ON DimensionValuesId=IdDimensionvalues " +
"WHERE IdStackUp=" + StackUpId.ToString + " AND " +
"isnull(IsDimensionValuesDeleted,0)=0 AND isnull(StackUpItems.IsDeleted,0)=0 ;"
SqlDataAdapter = New SqlDataAdapter(SqlString, SqlConnectionString)
TableNow = New DataTable
SqlDataAdapter.Fill(TableNow)
Я пробовал несколько вещей, но я понятия не имею, что я делаю, когда дело доходит до этих типов запросов.
Вот код для моего объекта из базы данных:
Function ToggleIsEDD(ByVal StackUpId) As Boolean
'main try
Try
Dim IdNow As Integer = StackUpId
Dim StackUpNow As IEnumerable(Of Stackup) = (From a In Db.Stackup Where a.IdStackup = IdNow).ToList
1 ответ
Вот что я получил на работу:
''Now Change each of the dimension values on the EDD stack to EDD dimension Values
'' - if Not deleted And on the stack
'================================================================
'This might need "or not null" statements within query as well
'================================================================
StackUpNow = (From a In Db.StackupItems
Where a.IdStackupItem =
IdNow And Not a.Stackup.IsDeleted And Not a.DimensionValues.IsDimensionValuesDeleted
).ToList