Here is the stack trace:
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.PersistQueue(List`1 queueToPersist, Boolean insertActions)
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave, Boolean refetchAfterSave, IPredicateExpression updateRestriction, Boolean recurse)
at SD.LLBLGen.Pro.ORMSupportClasses.DataAccessAdapterBase.SaveEntity(IEntity2 entityToSave)
at ConsoleTestApp.Program.Main(String[] args) in C:\Users\matts\Desktop\llblissues\ConsoleTestApp\ConsoleTestApp\Program.cs:line 35
Here is the output from the trace:
Method Enter: DataAccessAdapterBase.SaveEntity(4)
Active Entity Description:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: d356be8c-8677-436e-9035-bc910f23e6f0
PrimaryKey field: PrimaryId. Type: System.Int32. Value: <undefined value>
Method Enter: DataAccessAdapterBase.DetermineActionQueues(7)
Active Entity Description:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: d356be8c-8677-436e-9035-bc910f23e6f0
PrimaryKey field: PrimaryId. Type: System.Int32. Value: <undefined value>
Entity added to insert queue:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: d356be8c-8677-436e-9035-bc910f23e6f0
PrimaryKey field: PrimaryId. Type: System.Int32. Value: <undefined value>
Method Exit: DataAccessAdapterBase.DetermineActionQueues(7)
Method Enter: DataAccessAdapterBase.StartTransaction
: Transaction name: RecursiveSave. Isolation level: ReadCommitted.
Method Enter: DataAccessAdapterBase.OpenConnection
: New connection created.
: Connection physically opened.
Method Exit: DataAccessAdapterBase.OpenConnection
Method Exit: DataAccessAdapterBase.StartTransaction
Method Enter: DataAccessAdapterBase.PersistQueue
Persistence action info: Action: Insert. Queue length: 1
Current persisted entity info:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: d356be8c-8677-436e-9035-bc910f23e6f0
PrimaryKey field: PrimaryId. Type: System.Int32. Value: <undefined value>
'ConsoleTestApp.vshost.exe' (Managed): Loaded 'C:\Users\matts\Desktop\llblissues\ConsoleTestApp\ConsoleTestApp\bin\Debug\SD.LLBLGen.Pro.DQE.SqlServer.NET20.dll', No symbols loaded.
Method Enter: CreateInsertDQ
Method Enter: CreateSingleTargetInsertDQ
Generated Sql query:
Query: INSERT INTO [llbltestissues].[dbo].[TestTable] ([OtherTextField], [OtherInt]) VALUES (@OtherTextField, @OtherInt);SELECT @PrimaryId=SCOPE_IDENTITY()
Parameter: @PrimaryId : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Output. Value: <undefined value>.
Parameter: @OtherTextField : String. Length: 50. Precision: 0. Scale: 0. Direction: Input. Value: "test text".
Parameter: @OtherInt : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 1.
Method Exit: CreateSingleTargetInsertDQ
Method Exit: CreateInsertDQ
Method Enter: DataAccessAdapterBase.ExecuteActionQuery
Method Enter: DataAccessAdapterBase.OpenConnection
Method Exit: DataAccessAdapterBase.OpenConnection
Executed Sql Query:
Query: INSERT INTO [llbltestissues].[dbo].[TestTable] ([OtherTextField], [OtherInt]) VALUES (@OtherTextField, @OtherInt);SELECT @PrimaryId=SCOPE_IDENTITY()
Parameter: @PrimaryId : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Output. Value: 44.
Parameter: @OtherTextField : String. Length: 50. Precision: 0. Scale: 0. Direction: Input. Value: "test text".
Parameter: @OtherInt : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 1.
Method Exit: DataAccessAdapterBase.ExecuteActionQuery
PersistQueue method result: queuePersisted result: False
Method Exit: DataAccessAdapterBase.PersistQueue
Method Enter: DataAccessAdapterBase.PersistQueue
Persistence action info: Action: Update. Queue length: 0
PersistQueue method result: queuePersisted result: True
Method Exit: DataAccessAdapterBase.PersistQueue
Method Enter: DataAccessAdapterBase.Commit
Method Enter: DataAccessAdapterBase.Reset
Method Exit: DataAccessAdapterBase.Reset
Method Exit: DataAccessAdapterBase.Commit
Method Enter: DataAccessAdapterBase.CloseConnection
Method Exit: DataAccessAdapterBase.CloseConnection
Method Exit: DataAccessAdapterBase.SaveEntity(4)
A first chance exception of type 'System.InvalidOperationException' occurred in System.dll
Method Enter: DataAccessAdapterBase.SaveEntity(4)
Active Entity Description:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: 36baa03e-3983-4f2f-9603-9b8943f77ef9
PrimaryKey field: PrimaryId. Type: System.Int32. Value: 1
Method Enter: DataAccessAdapterBase.DetermineActionQueues(7)
Active Entity Description:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: 36baa03e-3983-4f2f-9603-9b8943f77ef9
PrimaryKey field: PrimaryId. Type: System.Int32. Value: 1
Entity added to update queue:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: 36baa03e-3983-4f2f-9603-9b8943f77ef9
PrimaryKey field: PrimaryId. Type: System.Int32. Value: 1
Method Exit: DataAccessAdapterBase.DetermineActionQueues(7)
Method Enter: DataAccessAdapterBase.StartTransaction
: Transaction name: RecursiveSave. Isolation level: ReadCommitted.
Method Enter: DataAccessAdapterBase.OpenConnection
: New connection created.
: Connection physically opened.
Method Exit: DataAccessAdapterBase.OpenConnection
Method Exit: DataAccessAdapterBase.StartTransaction
Method Enter: DataAccessAdapterBase.PersistQueue
Persistence action info: Action: Insert. Queue length: 0
PersistQueue method result: queuePersisted result: True
Method Exit: DataAccessAdapterBase.PersistQueue
Method Enter: DataAccessAdapterBase.PersistQueue
Persistence action info: Action: Update. Queue length: 1
Current persisted entity info:
Entity: DataAccess.EntityClasses.TestTableEntity. ObjectID: 36baa03e-3983-4f2f-9603-9b8943f77ef9
PrimaryKey field: PrimaryId. Type: System.Int32. Value: 1
Method Enter: CreateUpdateDQ(4)
Method Enter: CreateSingleTargetUpdateDQ(4)
Generated Sql query:
Query: UPDATE [llbltestissues].[dbo].[TestTable] SET [OtherInt]=@OtherInt WHERE ( [llbltestissues].[dbo].[TestTable].[PrimaryId] = @PrimaryId1)
Parameter: @OtherInt : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 5.
Parameter: @PrimaryId1 : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 1.
Method Exit: CreateSingleTargetUpdateDQ(4)
Method Exit: CreateUpdateDQ(4)
Method Enter: DataAccessAdapterBase.ExecuteActionQuery
Method Enter: DataAccessAdapterBase.OpenConnection
Method Exit: DataAccessAdapterBase.OpenConnection
Executed Sql Query:
Query: UPDATE [llbltestissues].[dbo].[TestTable] SET [OtherInt]=@OtherInt WHERE ( [llbltestissues].[dbo].[TestTable].[PrimaryId] = @PrimaryId1)
Parameter: @OtherInt : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 5.
Parameter: @PrimaryId1 : Int32. Length: 0. Precision: 10. Scale: 0. Direction: Input. Value: 1.
Method Exit: DataAccessAdapterBase.ExecuteActionQuery
Method Enter: DataAccessAdapterBase.Rollback
Method Enter: DataAccessAdapterBase.Reset
Method Exit: DataAccessAdapterBase.Reset
Method Exit: DataAccessAdapterBase.Rollback
A first chance exception of type 'SD.LLBLGen.Pro.ORMSupportClasses.ORMConcurrencyException' occurred in SD.LLBLGen.Pro.ORMSupportClasses.NET20.dll
Method Enter: DataAccessAdapterBase.CloseConnection
Method Exit: DataAccessAdapterBase.CloseConnection
Method Exit: DataAccessAdapterBase.SaveEntity(4)
And finally the corresponding sql profiler info:
declare @p3 int
set @p3=46
exec sp_executesql N'INSERT INTO [llbltestissues].[dbo].[TestTable] ([OtherTextField], [OtherInt]) VALUES (@OtherTextField, @OtherInt);SELECT @PrimaryId=SCOPE_IDENTITY()',N'@PrimaryId int output,@OtherTextField nvarchar(50),@OtherInt int',@PrimaryId=@p3 output,@OtherTextField=N'test text',@OtherInt=1
select @p3
exec sp_executesql N'UPDATE [llbltestissues].[dbo].[TestTable] SET [OtherInt]=@OtherInt WHERE ( [llbltestissues].[dbo].[TestTable].[PrimaryId] = @PrimaryId1)',N'@OtherInt int,@PrimaryId1 int',@OtherInt=5,@PrimaryId1=1