I've seen this exception referenced in a few threads with some users seemingly never getting it resolved. This particular solution is situation-specific but I wanted to post it here for anyone who may be experiencing the issue for the same reasons I was.
ISSUE:
---------------------------
Cannot insert explicit value for identity column in table 'YourTableNameHere' when IDENTITY_INSERT is set to OFF.
SITUATION:
---------------------------
In my particular case I was getting this same error because I had a field other than than the primary key set as the Identity Field!
Pertinent fields from Table:
Fieldname: ProjectId (Primary Key)
Type: UniqueIdentifier
RowGuid: True
Fieldname: ClusterIndex
Type: Int
Identity Specification: Yes
It was all but impossible to tell from the huge exception but it was actually the attempt to write to the ClusterIndex field that was throwing the exception!
SOLUTION:
---------------------------
1) Open the rlinq file and in the designer click the offending field (ClusterIndex in my case).
2) In the Visual Studio Properties Editor set "Kind" to: "PersistentReadOnly".
3) Save
That's it! Now this field will NOT attempt to be written to when adding/updating records - and thus no more exception!
Alternatively you could probably just remove the offending field from the entity model completely if you have no need for it in your code, etc.
Hope this helps someone else!