In this case I get an error from the SQL-Server, that the Tablenames are not explicit.
I show this on my really used code.
Database: CrossArchiv
Table: tbl500
MainEntity: ArchivEntity
SubEntity1: ArchivMappeEntity
SubEntity2: ArchivDateiEntity
Relation: ArchivMappeEntity ID - ArchivDateiEntity ParentID (1:n)
This is the code without aliases:
Dim archivMappeCollection As New EntityCollection(Of ArchivMappeEntity)
Dim filter As New RelationPredicateBucket
filter.PredicateExpression.AddWithAnd(ArchivMappeFields.Datum >= Me.datVon.Value)
filter.PredicateExpression.AddWithAnd(ArchivMappeFields.Datum <= Me.datBis.Value)
filter.PredicateExpression.AddWithAnd(New FieldFullTextSearchPredicate(ArchivDateiFields.Datei, Nothing, FullTextSearchOperator.Contains, "Rechnung"))
filter.Relations.Add(ArchivMappeEntity.Relations.ArchivDateiEntityUsingParentId)
Using da As New DataAccessAdapter
da.FetchEntityCollection(archivMappeCollection, filter)
End Using
This is the generated Query without aliases:
exec sp_executesql N'
SELECT
[CrossArchiv].[dbo].[tbl500].[C000] AS [F0],
[CrossArchiv].[dbo].[tbl500].[C001] AS [F1],
[CrossArchiv].[dbo].[tbl500].[C002] AS [F2],
[CrossArchiv].[dbo].[tbl500].[C012] AS [F3],
[CrossArchiv].[dbo].[tbl500].[C013] AS [F4],
[CrossArchiv].[dbo].[tbl500].[C998] AS [F5],
[CrossArchiv].[dbo].[tbl500].[C999] AS [F6],
[CrossArchiv].[dbo].[tbl500].[ts] AS [F7],
[CrossArchiv].[dbo].[tbl500].[C019] AS [F8],
[CrossArchiv].[dbo].[tbl500].[C020] AS [F9],
[CrossArchiv].[dbo].[tbl500].[C005] AS [F10],
[CrossArchiv].[dbo].[tbl500].[C006] AS [F11],
[CrossArchiv].[dbo].[tbl500].[C007] AS [F12],
[CrossArchiv].[dbo].[tbl500].[C008] AS [F13],
[CrossArchiv].[dbo].[tbl500].[C009] AS [F14],
[CrossArchiv].[dbo].[tbl500].[C010] AS [F15],
[CrossArchiv].[dbo].[tbl500].[C011] AS [F16],
[CrossArchiv].[dbo].[tbl500].[C017] AS [F17],
[CrossArchiv].[dbo].[tbl500].[C018] AS [F18]
FROM
(
[CrossArchiv].[dbo].[tbl500]
INNER JOIN
[CrossArchiv].[dbo].[tbl500]
ON
[CrossArchiv].[dbo].[tbl500].[C000]=[CrossArchiv].[dbo].[tbl500].[C012]
)
WHERE
(
(
[CrossArchiv].[dbo].[tbl500].[C005] >= @Datum1
AND
[CrossArchiv].[dbo].[tbl500].[C005] <= @Datum2
AND
Contains([CrossArchiv].[dbo].[tbl500].[C003], @Datei11)
)
AND
(
[CrossArchiv].[dbo].[tbl500].[C020] = @Kz4
)
)
',N'
@Datum1 datetime,
@Datum2 datetime,
@ParentId3 int,
@Kz4 int',
@Datum1='30.04.2007 00:00:00:000',
@Datum2='30.07.2007 23:59:59:000',
@Kz4=2