Maybe I'm missing something here, but is there any way to update the primary key of an entity?

I know that PKs should be immutable, but I'm working with an existing database where some of the tables are set up with PKs that routinely change. If EF doesn't support this, then EF is pretty much a non-starter.

Here's my test code. The database table is a made up one for testing EF.

Module Module1

    Sub Main()

        Console.Out.WriteLine("Loading...")
        Dim p As New Paradev()
        Dim c = Aggregate r In p.CustomerOrders Into Count()

        Console.Out.WriteLine("Count is {0}", c)

        Dim first = p.CustomerOrders.First()
        first.Amount = 12345
        p.SaveChanges()

        Console.In.ReadLine()
    End Sub

End Module

Public Class CustomerOrder
    Public Property Name As String
    Public Property OrderDate As Date?
    Public Property Amount As Decimal?
End Class

Public Class Paradev
    Inherits DbContext

    Public Property CustomerOrders As DbSet(Of CustomerOrder)

    Protected Overrides Sub OnModelCreating(modelBuilder As System.Data.Entity.DbModelBuilder)
        modelBuilder.Entity(Of CustomerOrder).HasKey(Function(t) New With {t.Name, t.OrderDate, t.Amount})
        modelBuilder.Entity(Of CustomerOrder).Property(Function(t) t.Name).HasColumnName("NAME")
        modelBuilder.Entity(Of CustomerOrder).Property(Function(t) t.Amount).HasColumnName("AMT")
        modelBuilder.Entity(Of CustomerOrder).Property(Function(t) t.OrderDate).HasColumnName("DT")
        modelBuilder.Entity(Of CustomerOrder)().ToTable("CUSTOMER_ORDERS", "SSP01953")
    End Sub

End Class