This is the first time i have tried using projectors. The following code is supposed to grab a list and project it onto an entity collection. However, all the properties in the returned collection have the value 0!
I have run the code in the debugger and confirmed that the SQL query is generating correctly, but for some reason all the values that get projected into the collection get converted to 0.
Any help appreciated.
public static EntityCollection<ProductsRelatedEntity> FetchRelatedProducts(int[] productIDs)
{
//create collection we want the final results in
EntityCollection<ProductsRelatedEntity> relatedProducts = new EntityCollection<ProductsRelatedEntity>();
//create result set fields
ResultsetFields fields = new ResultsetFields(2);
fields[0] = ProductsRelatedFields.Pk_fk_RelatedProductID;
fields[1] = ProductsRelatedFields.Pk_fk_ProductRelatedTypeID;
//create projector
DataProjectorToIEntityCollection2 projector = new DataProjectorToIEntityCollection2( relatedProducts );
//create valueProjectors
List<IDataValueProjector> valueProjectors = new List<IDataValueProjector>();
valueProjectors.Add(new DataValueProjector(ProductsRelatedFields.Pk_fk_RelatedProductID.ToString(), 0, typeof(int)));
valueProjectors.Add(new DataValueProjector(ProductsRelatedFields.Pk_fk_ProductRelatedTypeID.ToString(), 1, typeof(string)));
//fire up adaptor
DataAccessAdapter adapter = new DataAccessAdapter();
//set filter
IRelationPredicateBucket bucket = new RelationPredicateBucket();
bucket.PredicateExpression.Add(ProductsRelatedFields.Pk_fk_ProductID == productIDs);
//fetch
adapter.FetchProjection(valueProjectors, projector, fields, bucket, 15, false);
return relatedProducts;
}
Version: 2.5
Templates: Adapter