Интересно ... что GetOriginalEntityState
возвращает для неприкрепленного объекта? Даже если оно выдаст исключение, оно, вероятно, будет быстрее обновления ...
(обновление) - тест показывает, что он возвращает ноль:
Customer cust = new Customer();
Customer orig = ctx.Customers.GetOriginalEntityState(cust);
Assert.IsNull(orig);
cust = new Customer();
ctx.Customers.Attach(cust);
orig = ctx.Customers.GetOriginalEntityState(cust);
Assert.IsNotNull(orig);
Assert.AreNotSame(cust,orig);
Так что, возможно, используйте GetOriginalEntityState
и проверьте нулевое возвращаемое значение ...