Tabla de servidor SQL:
SomeId PK varchar(50) not null
OtherId PK int not null
¿Cómo debo asignar esto en el código EF 6 primero?
public class MyTable
{
[Key]
public string SomeId { get; set; }
[Key]
public int OtherId { get; set; }
}
He visto algunos ejemplos en los que debe establecer el orden para cada columna, ¿es necesario?
¿Hay documentación oficial sobre esto en alguna parte?
c#
sql-server
entity-framework
entity-framework-6
Loyalflow
fuente
fuente
SomeId
unastring
o unaint
?Respuestas:
Definitivamente debe poner el orden de las columnas, de lo contrario, ¿cómo se supone que SQL Server sepa cuál va primero? Esto es lo que debe hacer en su código:
También puede consultar esta pregunta SO . Si desea documentación oficial, le recomiendo que consulte el sitio web oficial de EF . Espero que esto ayude.
EDITAR: Acabo de encontrar una publicación de blog de Julie Lerman con enlaces a todo tipo de bondades de EF 6. Puedes encontrar lo que necesites aquí .
fuente
otherwise how is SQL Server supposed to know which one goes first?
- ¿Por qué no conoce el orden de las demás columnas de la misma forma?Para el mapeo de la clave primaria compuesta usando Entity framework, podemos usar dos enfoques.
1) Anulando el método OnModelCreating ()
Por ejemplo: tengo la clase de modelo denominada VehicleFeature como se muestra a continuación.
El código en mi DBContext sería como,
2) Por anotaciones de datos.
Consulte los enlaces a continuación para obtener más información.
1) https://msdn.microsoft.com/en-us/library/jj591617(v=vs.113).aspx
2) ¿Cómo agregar una clave única compuesta usando EF 6 Fluent Api?
fuente
A través de la configuración, puede hacer esto:
luego en la configuración de contexto
fuente
Pensé que agregaría algo a esta pregunta, ya que es el mejor resultado de búsqueda de Google.
Como se ha señalado en los comentarios, en EF Core no hay soporte para el uso de anotaciones (atributo clave) y debe hacerse con fluidez.
Como estaba trabajando en una gran migración de EF6 a EF Core, esto fue desagradable y traté de piratearlo usando Reflection para buscar el atributo Key y luego aplicarlo durante OnModelCreating
No lo he probado completamente en todas las situaciones, pero funciona en mis pruebas básicas. Espero que esto ayude a alguien
fuente