Hi,
LLBLGenPro v3.5 Build Date: June 27th, 2012 (latest)
When two tables inner join in QuerySpec, it produces an SQL with "DISTINCT" query as follow:
var factory = new QueryFactory();
var query = factory.SaleEvent.From(QueryTarget.InnerJoin(SaleEventEntity.Relations.PersonEntityUsingPrimaryId));
var result = this.AdapterToUse.FetchQuery(query);
SQL Output: SELECT DISTINCT ...
However, The following QuerySpec does not append "DISTINCT" in SQL output:
var factory = new QueryFactory();
var query = factory.SaleEvent.From(QueryTarget.InnerJoin(SaleEventEntity.Relations.PersonEntityUsingPrimaryId)).Select(() => new {
RecordId = SaleEventFields.PrimaryId.ToValue<int>(),
CompanyName = PersonFields.CompanyName.ToValue<string>(),
});
var result = this.AdapterToUse.FetchQuery(query);
SQL Output: SELECT ...
In the above query, I tried many columns in Select() Func, but there is no "DISTINCT" in SQL output. Also, Linq do not produce "DISTINCT" as well:
var metaData = new LinqMetaData(this.AdapterToUse);
var q = (from e in metaData.SaleEvent
join c in metaData.Person on e.PersonId equals c.PrimaryId
select new { e, c });
SQL Output: SELECT ...
I am not sure why the first QuerySpec creates "DISTINCT" keyword in SQL query. Any ideas?
Kind Regards,