Chaque fois que j'ai une table avec un BIGINT
clé primaire, je peux insérer de nouveaux enregistrements, mais je ne peux pas mettre à jour les enregistrements existants. Lorsque j'essaie d'effectuer une mise à jour, j'obtiens l'erreur suivante :
"The specified value is not an instance of type 'Edm.Decimal'"
Modèle d'échantillon :
public class Model
{
public long ModelID { get; set; }
public DateTime ProcessedOn { get; set; }
}
Exemple de code de mise à jour :
public bool SetModelProcessed(long id)
{
var entity = db.models.SingleOrDefault(m => m.ModelID == id);
entity.ProcessedOn = DateTime.Now;
db.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Modified);
db.SaveChanges();
}
Même un modèle aussi simple que celui-ci est défaillant pour moi. Quelqu'un sait-il ce qui se passe ?
Editar
J'ai essayé l'approche "code-first". Entity Framework 4.3 n'a même pas pu générer la base de données mySQL, ce qui est apparemment un problème pour mySQL et les versions d'Entity Framework après l'ajout des fonctions de migration.
Depuis la rétrogradation à la version 4.1.10715.0, long
travaux, ulong
ne l'est toujours pas. EF ne reconnaîtra pas une propriété comme clé primaire s'il s'agit de ulong
.
EntityType 'Model' has no key defined. Define the key for this EntityType.
Utilisation de long
au lieu de ulong
n'est pas ce dont j'ai besoin, mais ça devra faire l'affaire, je suppose.