A look at the Item Xml confirmed this: I didn’t want to script an update to all files (because that would trigger Event Receivers) so I avoided querying those properties directly and instead created an extension method to get those values through the SPList Item: There were a lot of Event Receivers in the custom solution so I didn’t take this path, mainly because I noticed in Share Point 2010 the SPList Item.
System Update() method will also trigger Event Receivers.
Also not sure why the Event Receivers were missing in the first place.
It could be because some “questionable” actions happened during the setup of the site, but it could as well be a bug in Share Point 2010 RTM or later.
In some cases you could use the “after” Event Receiver rather than the “before” Event Receiver, but isn’t really a sound solution.
The best option would be to rewrite the Web Part to run its code on the client, either through Client OM (ECMAScript or Silverlight), or the Share Point Web Services.
Here’s a scenario that fails every time and everywhere: [SPUser Code Solution Execution Failed Exception: Unhandled exception was thrown by the sandboxed code wrapper's Execute method in the partial trust app domain: The sandboxed code execution request was refused because the Sandboxed Code Host Service was too busy to handle the request.] So what’s going on here ?
In light of this you might conclude that there’s no possible communication between two sandbox code requests (the Web Part and the Event Receiver).
On such tables if a DELETE command is received, all the fields, excluding the key field, will be iterated as changed, with null value.After this we noticed errors like “User cannot be found”.A bit of investigation showed that the ‘migrateuser’ operation didn’t update SPFile. Modified By and querying those properties would throw the above exception.All of this is also true on tables that have the two-level behavior enabled, but in case of DELETE commands second-level fields will not be iterated.
Note that the iterator is executed before this method returns.
There’s a difference in behavior for Lists and Libraries; the former allows you to also read/write from the Context. It can be used to declare additional information and then the Event Receiver code behind can use this information. Afterwards the user is presented with the option to change the Content Type which will trigger Item Updating and Item Updated for the destination Content Type I’m starting to see the light although I do think that the Recycle Bin thing is a design flaw. Currently I’m thinking an additional check on Content Type in your code might be the safest way to ensure your code doesn’t run accidentally for a different Content Type ? Today I got into some code reviewing of an Item Event Receiver using Enterprise Library for data access.