Hi all,
I hope you can help me. This is an issue I have been battling with for days now, and I am struggling to resolve it.
My setup:
I am using VS2015 Community Edition
I am using LINQ to SQL
.Net 4.5
I have read up quite a bit on this specific error, and it seems there are a couple ways to resolve it. I have unfortunately not been able to.
My error lies on this line:
I get the error: An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy.
I have read and tried (where possible) the following solutions:
Entity attachment issues in LINQ
Update check' issue when updating an entity using DataContext Attach method
System.InvalidOperationException: An entity can only be attached as modified
And more ...
It seems the problem lies in this; that I am not updating an unchanged record. However, as far as I can see and understand, the record IS changed.
I am sure it is something simple I am doing wrong, and perhaps just need a set of new eyes on it.
Please remember; I am a newbie Thank you for your patience.
Thank you in advance!
I hope you can help me. This is an issue I have been battling with for days now, and I am struggling to resolve it.
My setup:
I am using VS2015 Community Edition
I am using LINQ to SQL
.Net 4.5
I have read up quite a bit on this specific error, and it seems there are a couple ways to resolve it. I have unfortunately not been able to.
My error lies on this line:
C#:
[COLOR=black]sourceContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]ProjectMasters[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Attach[/COLOR][COLOR=black]([/COLOR][COLOR=black]project[/COLOR][COLOR=black],[/COLOR][COLOR=#00008B]true[/COLOR][COLOR=black]);[/COLOR]
I get the error: An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy.
I have read and tried (where possible) the following solutions:
Entity attachment issues in LINQ
Update check' issue when updating an entity using DataContext Attach method
System.InvalidOperationException: An entity can only be attached as modified
And more ...
It seems the problem lies in this; that I am not updating an unchanged record. However, as far as I can see and understand, the record IS changed.
I am sure it is something simple I am doing wrong, and perhaps just need a set of new eyes on it.
Please remember; I am a newbie Thank you for your patience.
C#:
[COLOR=#00008B]private[/COLOR][COLOR=#00008B]class[/COLOR][COLOR=#2B91AF]ProjectMastersIdentifier[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]public[/COLOR][COLOR=#2B91AF]int[/COLOR][COLOR=#2B91AF]Id[/COLOR][COLOR=black]{[/COLOR][COLOR=black] get[/COLOR][COLOR=black];[/COLOR][COLOR=#2B91AF]set[/COLOR][COLOR=black];[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]public[/COLOR][COLOR=#00008B]string[/COLOR][COLOR=#2B91AF]FinanceProjectNumber[/COLOR][COLOR=black]{[/COLOR][COLOR=black] get[/COLOR][COLOR=black];[/COLOR][COLOR=#2B91AF]set[/COLOR][COLOR=black];[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]public[/COLOR][COLOR=#00008B]string[/COLOR][COLOR=#2B91AF]ProcessingSignal[/COLOR][COLOR=black]{[/COLOR][COLOR=black] get[/COLOR][COLOR=black];[/COLOR][COLOR=#2B91AF]set[/COLOR][COLOR=black];[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR]
C#:
[COLOR=#00008B]public[/COLOR][COLOR=#00008B]static[/COLOR][COLOR=#00008B]void[/COLOR][COLOR=#2B91AF]ProcessInstructions[/COLOR][COLOR=black]()[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
using [/COLOR][COLOR=black]([/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] sourceContext [/COLOR][COLOR=black]=[/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]StagingTableDataContext[/COLOR][COLOR=black]())[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
using [/COLOR][COLOR=black]([/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] destinationContext [/COLOR][COLOR=black]=[/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]DestinationTableDataContext[/COLOR][COLOR=black]())[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] allProjectNames [/COLOR][COLOR=black]=[/COLOR][COLOR=black] destinationContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]THEOPTIONs[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Select[/COLOR][COLOR=black]([/COLOR][COLOR=black]u [/COLOR][COLOR=black]=>[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=black]NAME[/COLOR][COLOR=black]).[/COLOR][COLOR=#2B91AF]Distinct[/COLOR][COLOR=black]().[/COLOR][COLOR=#2B91AF]ToList[/COLOR][COLOR=black]();[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] instructionGroups [/COLOR][COLOR=black]=[/COLOR][COLOR=black] sourceContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]ProjectMasters[/COLOR][COLOR=black].[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Where[/COLOR][COLOR=black]([/COLOR][COLOR=black]u [/COLOR][COLOR=black]=>[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Processing_Result[/COLOR][COLOR=black]==[/COLOR][COLOR=#2B91AF]Unprocessed[/COLOR][COLOR=black]).[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Select[/COLOR][COLOR=black]([/COLOR][COLOR=black]
u [/COLOR][COLOR=black]=>[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]ProjectMastersIdentifier[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Id[/COLOR][COLOR=black]=[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]RowID[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]FinanceProjectNumber[/COLOR][COLOR=black]=[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Finance_Project_Number[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]ProcessingSignal[/COLOR][COLOR=black]=[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Processing_Signal[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Trim[/COLOR][COLOR=black]()[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=black]).[/COLOR][COLOR=#2B91AF]GroupBy[/COLOR][COLOR=black]([/COLOR][COLOR=black]u [/COLOR][COLOR=black]=>[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]ProcessingSignal[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Trim[/COLOR][COLOR=black]());[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]foreach[/COLOR][COLOR=black]([/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] instructionGroup [/COLOR][COLOR=#00008B]in[/COLOR][COLOR=black] instructionGroups[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Where[/COLOR][COLOR=black]([/COLOR][COLOR=black]u [/COLOR][COLOR=black]=>[/COLOR][COLOR=black] u[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Key[/COLOR][COLOR=black]==[/COLOR][COLOR=maroon]"I"[/COLOR][COLOR=black]))[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]foreach[/COLOR][COLOR=black]([/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] instruction [/COLOR][COLOR=#00008B]in[/COLOR][COLOR=black] instructionGroup[/COLOR][COLOR=black])[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]if[/COLOR][COLOR=black]([/COLOR][COLOR=black]allProjectNames[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Contains[/COLOR][COLOR=black]([/COLOR][COLOR=black]instruction[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]FinanceProjectNumber[/COLOR][COLOR=black]))[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] project [/COLOR][COLOR=black]=[/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]ProjectMaster[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]RowID[/COLOR][COLOR=black]=[/COLOR][COLOR=black] instruction[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Id[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Processing_Result[/COLOR][COLOR=black]=[/COLOR][COLOR=#2B91AF]Invalid[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Processing_Result_Text[/COLOR][COLOR=black]=[/COLOR][COLOR=maroon]"Project Already Exists"[/COLOR][COLOR=black]
[/COLOR][COLOR=black]};[/COLOR][COLOR=black]
sourceContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]ProjectMasters[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Attach[/COLOR][COLOR=black]([/COLOR][COLOR=black]project[/COLOR][COLOR=black],[/COLOR][COLOR=#00008B]true[/COLOR][COLOR=black]);[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]else[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#00008B]var[/COLOR][COLOR=black] project [/COLOR][COLOR=black]=[/COLOR][COLOR=#00008B]new[/COLOR][COLOR=#2B91AF]ProjectMaster[/COLOR][COLOR=black]
[/COLOR][COLOR=black]{[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]RowID[/COLOR][COLOR=black]=[/COLOR][COLOR=black] instruction[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Id[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Processing_Result[/COLOR][COLOR=black]=[/COLOR][COLOR=#2B91AF]Unprocessed[/COLOR][COLOR=black],[/COLOR][COLOR=black]
[/COLOR][COLOR=#2B91AF]Processing_Result_Text[/COLOR][COLOR=black]=[/COLOR][COLOR=maroon]"Project Does not Exiist...Moving on."[/COLOR][COLOR=black]
[/COLOR][COLOR=black]};[/COLOR][COLOR=black]
sourceContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]ProjectMasters[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]Attach[/COLOR][COLOR=black]([/COLOR][COLOR=black]project[/COLOR][COLOR=black],[/COLOR][COLOR=#00008B]true[/COLOR][COLOR=black]);[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
sourceContext[/COLOR][COLOR=black].[/COLOR][COLOR=#2B91AF]SubmitChanges[/COLOR][COLOR=black]();[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}[/COLOR][COLOR=black]
[/COLOR][COLOR=black]}
[/COLOR]
Thank you in advance!