Tengo el código de la siguiente manera:
Dictionary<object, object> dict = ... Color = (int)dict.GetValue("color");Cuando convierto el Color en un int, obtengo la siguiente excepción:
System.InvalidCastException: no se puede convertir el objeto del tipo 'System.Int64' al tipo 'System.Int32'.
No estoy seguro de por qué no puedo pasar de largo a int. Sé con certeza que el valor es menor que 0xFFFFFF (24 bits) ya que es un color.
Intenté usar unchecked pero eso tampoco ayudó.
Primero debe desempaquetar el valor ya que el tipo de valor del diccionario es object .
Dictionary<object, object> dict = ... Color = (int)(long)dict.GetValue("color");Si no conoce el tipo original, la siguiente expresión puede ser más conveniente.
public T Get<T>(string key) { return (T) Convert.ChangeType(_dict[key], typeof(T), CultureInfo.InvariantCulture); }no se puede rastrear porque ya se está rastreando otra instancia con el mismo valor clave para
encontrar solución
context.Patrol.AddRange(model); // error entity.Property(e => e.Id) .HasColumnName("ID") .ValueGeneratedNever(); // old entity.Property(e => e.Id) .HasColumnName("ID"); //remove ValueGeneratedNever()