c# - tablas - como hacer un indice en un trabajo de investigacion
Crear índice de cadenas con Código primero (2)
Estoy usando el código primero de Entity Framework 6.1 y mi modelo de dominio está a continuación.
class Item
{
[Index]
public string CreatedBy { set; get; }
}
Cuando uso la base de datos de actualización para la migración, aparece el siguiente error. Sin embargo, en lo que investigué [Index]
debería funcionar como anotación en la string
.
La columna ''CreatedBy'' en la tabla ''dbo.Items'' es de un tipo que no es válido para usar como una columna clave en un índice.
Por lo general, obtienes este error cuando utilizas un VARCHAR (Max) intente usar:
[Column(TypeName = "VARCHAR")]
[StringLength(n)]
[Index]
public string CreatedBy { set; get; }
donde n está entre 1 y 450.
Si usa las asignaciones de EntityTypeConfiguration aka:
public class MyPocoEntitiyTypeConfig<T> : EntityTypeConfiguration<T> where T:class
{
}
public class MyPocoEnt
{
public virtual string MyProp { get; set; }
}
public class MyPocoEntMapping : MyPocoEntitiyTypeConfig<MyPocoEnt>
{
public MyPocoEntMapping()
{
Property(x => x.MyProp).HasMaxLength(300);
Property(x => x.MyProp).HasColumnAnnotation("Index", new IndexAnnotation(new IndexAttribute("MyProp") { IsUnique = true }));
}
}
}