I've just been looking in Partial Methods and Linq (http://blog.benhall.me.uk/2007/07/partial-methods-in-linq.html) and found either a bug or something which is unclear and confusing.
On the Data Context, if I implement and of the Insert,Update,Delete partial methods then when I try and perform that action on the database and the SQL is never generated. However, the partial method is called. If we use the Console.out as the Linq's output source or SQL Profiler this shows no sql queries being executed.
If we have this code in a partial datacontext class:
partial void UpdateOrder(Order instance)
Then doing a simple update such as this would not work:
List<Order> table = query.ToList<Order>();
table.ShipName = DateTime.Now.ToString();
Now, if this is not a bug and is by design then it could be a lot clearer. I don't like the fact that a method could either be a hook or override functionality without any clear indication to which one it is.
As mentioned in the post, something like partial override void .....() would be better and demostrate that something is being changed and not extended.
Just an idea..... hope this is useful to you.