When saving inherited entity with not set PK, exception is thrown

Posts   
 
    
kievBug
User
Posts: 105
Joined: 09-Jan-2009
# Posted on: 08-Nov-2010 19:09:42   

Hi guys,

I've an inherited entity SimpleEntity, which is inherited from the BaseEntity. Primary key is one field - ID (guid). When I create new SimpleEntity and assign field values, and trying to save it, exception is thrown:

System.Collections.Generic.KeyNotFoundException : The given key was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key) at SD.LLBLGen.Pro.ORMSupportClasses.DynamicQueryEngineBase.CreateInsertDQ(IEntityFieldCore[] fields, IFieldPersistenceInfo[] fieldsPersistenceInfo, IDbConnection connectionToUse) in DynamicQueryEngineBase.cs: line 173 at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateInsertDQ(IEntity2 entityToSave, IFieldPersistenceInfo[] persistenceInfoObjects) in DataAccessAdapterBase.cs: line 4100 at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.CreateQueryForEntityToSave(Boolean insertActions, EntityBase2 entityToSave, IPredicateExpression updateRestriction, InheritanceHierarchyType typeOfHierarchy, IFieldPersistenceInfo[] persistenceInfoObjects) in DataAccessAdapterBase.cs: line 5424 at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.PersistQueue(List1 queueToPersist, Boolean insertActions, ref Int32 totalAmountSaved) in DataAccessAdapterBase.cs: line 1338 at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave, Boolean refetchAfterSave, IPredicateExpression updateRestriction, Boolean recurse) in DataAccessAdapterBase.cs: line 1277 at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave) in DataAccessAdapterBase.cs: line 1092

If I set PK manually, everyting will be saved correctly, but I want PK to be generated by SQL Server, and I do not want to set it manually.

I use 2.6, Adapter templates, inheritance is of Target-Per-Entity type.

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 09-Nov-2010 09:16:17   

Have you set the DQE CompatabilityLevel to the appropriate level. ref: DQE Compatibility mode

Similar post: http://www.llblgen.com/TinyForum/Messages.aspx?ThreadID=14496

kievBug
User
Posts: 105
Joined: 09-Jan-2009
# Posted on: 10-Nov-2010 22:01:33   

Ups, that's helps.

Thanks, Anton