hmmm, is there option to use default alias on for entity?
I have two entities mapped on the same table (AdvertisementSingleEntity, AdvertisementGroupEntity).
I want to use them in the same select in relations and in predicate it gives not expected results.
var ac = new AdvertisementSingleCollection();
var relations = new RelationCollection();
relations.Add(AdvertisementSingleEntity.Relations.AdvertisementFileEntityUsingIdAdvertisement);
relations.Add(AdvertisementFileEntity.Relations.AdvertisementGroupEntityUsingIdAdvertisementGroup, JoinHint.Left);
var filter = new PredicateExpression();
filter.Add(AdvertisementSingleFields.CodeAdvertisementType == 1);
filter.Add(AdvertisementGroupFields.CodeAdvertisementType == 2);
ac.GetMulti(filter, relations);
results in query: (this is bad)
SELECT DISTINCT [dbo].[Advertisement].[IdAdvertisement], [dbo].[Advertisement].[CodeAdvertisementType], [dbo].[Advertisement].[Created], [dbo].[Advertisement].[Modified], [dbo].[Advertisement].[Name]
FROM ( [dbo].[Advertisement]
INNER JOIN [dbo].[AdvertisementFile]
ON [dbo].[Advertisement].[IdAdvertisement]=[dbo].[AdvertisementFile].[IdAdvertisement])
WHERE ( ( [dbo].[Advertisement].[CodeAdvertisementType] = 1 AND [dbo].[Advertisement].[CodeAdvertisementType] = 2))
also if i use object alias, in RelationColection and in Predicate, there is still [dbo].[Advertisement] instead of [LPA_a1] in the 'select' part of the query
the query for code:
var relations = new RelationCollection();
relations.Add(AdvertisementSingleEntity.Relations.AdvertisementGroupEntityUsingIdAdvertisement);
ac.GetMulti(filter, relations);
would be: (this would be ok)
SELECT [asingle].IdAdvertisement...
FROM [dbo].[Advertisement] as [asingle]
INNER JOIN [dbo].[Advertisement] as [agroup] ON [asingle].[IdAdvertisement] =[agroup].[IdAdvertisement]
Ideally, but not necessary:
SELECT [asingle].IdAdvertisement...
FROM
(
SELECT IdAdvertisement .. FROM [dbo].[Advertisement] WHERE CodeAdvertisementType = 1
) as [asingle]
INNER JOIN
(SELECT IdAdvertisement .. FROM [dbo].[Advertisement] WHERE CodeAdvertisementType = 2
) as [agroup] on [asingle].[IdAdvertisement] =[agroup].[IdAdvertisement]