I think this is very basic, but either I don't understand or I'm using it the wrong way. But how can I get a resultset back from a join query. So the resultset contains fields of both joined table. I use a left join so the joined table doesn't need to have data.
Do I use create Resultfields for this. I think so, but how can I fill these fields (returning a datatable)
this code return sqlexecptions (Multiplartidentifier cannot be bound)
[colorvalue="008822"]ResultsetFields fields = new ResultsetFields(8);
fields.DefineField(SystemSettingFields.SystemSettingId, 0, SystemSettingFields.SystemSettingId.Name, "S");
fields.DefineField(SystemSettingFields.Definition, 1, SystemSettingFields.Definition.Name, "S");
fields.DefineField(SystemSettingFields.IsActive, 2, SystemSettingFields.IsActive.Name, "S");
fields.DefineField(SystemSettingFields.SettingValueType, 3, SystemSettingFields.SettingValueType.Name, "S");
fields.DefineField(SystemSettingFields.CanOverrideByUnitSetting, 4, SystemSettingFields.CanOverrideByUnitSetting.Name, "S");
fields.DefineField(SystemSettingFields.DefaultSystemValue, 5, SystemSettingFields.DefaultSystemValue.Name, "S");
fields.DefineField(SystemSettingOrganizationFields.SystemValue, 6,"OrganizationValue", "O");
fields.DefineField(SystemSettingOrganizationFields.SystemValue, 7, "UnitValue", "U");
IRelationPredicateBucket filter = new RelationPredicateBucket();
filter.Relations.Add(SystemSettingEntity.Relations.SystemSettingOrganizationEntityUsingSystemSettingId, JoinHint.Left);
filter.Relations.Add(SystemSettingEntity.Relations.SystemSettingUnitEntityUsingSystemSettingId, JoinHint.Left);
filter.PredicateExpression.Add(new FieldCompareValuePredicate(SystemSettingFields.IsActive, null, ComparisonOperator.Equal, true));
filter.PredicateExpression.AddWithAnd(new FieldCompareValuePredicate(SystemSettingFields.CanOverrideByUnitSetting, null, ComparisonOperator.Equal, true));
filter.PredicateExpression.AddWithAnd(new FieldCompareValuePredicate(SystemSettingOrganizationFields.OrganizationId, null, ComparisonOperator.Equal, oId));
DataTable results = new DataTable();
using (DataAccessAdapter adapter = new DataAccessAdapter())
{
adapter.FetchTypedList(fields, results, filter, true);
}
return results;[/color]
Any help is appreciated. Thx