Thanks! That works fine
But now I am having another problem. When loading an entity via my custom factory I can't update the entity anymore. In the factory I change the number of fields of the entity and I guess I can't save the entity anymore after this change. Is there a solution to resolve that?
My factory
public class MyFactory:EmployeeSalaryEntityFactory {
private string mDecryptionPassword = "";
/// <summary>
/// Default constructor
/// </summary>
/// <param name="decryptionPassword">Password used to decrypt data</param>
public EmployeeSalaryEntityFactoryWithSalaryDecryption(string decryptionPassword):base() {
mDecryptionPassword = decryptionPassword;
}
/// <summary>
/// Define new fields
/// </summary>
/// <returns></returns>
public override IEntityFields2 CreateFields() {
IEntityFields2 toReturn = base.CreateFields();
toReturn.Expand(1); // add field
// define function call for decryption
IExpression netSalaryDecryption = new DbFunctionCall("DecryptByPassPhrase", new object[] { mDecryptionPassword, EmployeeSalaryFields.EncryptedNetSalary });
// define new field
IEntityField2 netSalaryField = new EntityField2("DecryptedNetSalary", netSalaryDecryption);
// add field to collection
toReturn.DefineField(netSalaryField, toReturn.Count - 1);
return toReturn;
}
}
Exception that is thrown when loading an entity with this factory and saving it via adapter.SaveEntity(..)
at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.ConstructFieldsToUpdateList(IEntityFieldCore[] fields, IFieldPersistenceInfo[] fieldsPersistenceInfo, List1& fieldsToUpdate, List
1& persistenceInfoFieldsToUpdate)\r\n at SD.LLBLGen.Pro.DQE.SqlServer.DynamicQueryEngine.CreateSingleTargetUpdateDQ(IEntityFieldCore[] fields, IFieldPersistenceInfo[] fieldsPersistenceInfo, IDbConnection connectionToUse, IPredicate updateFilter)\r\n at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.CreateUpdateDQ(IEntityFieldCore[] fields, IFieldPersistenceInfo[] fieldsPersistenceInfo, IDbConnection connectionToUse, List1 pkFilters)\r\n at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateUpdateDQ(IEntity2 entityToSave, IFieldPersistenceInfo[] persistenceInfoObjects, List
1 pkFilters)\r\n at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.PersistQueue(List`1 queueToPersist, Boolean insertActions)\r\n at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave, Boolean refetchAfterSave, IPredicateExpression updateRestriction, Boolean recurse)\r\n at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave)\r\n
I guess I am not the first one who is facing that problem..
However, I wasn't able to find a solution in this forum or in the manual..
Thanks for your help!