none
HasColumnOrder no funciona en Fluent API EF 6 RRS feed

  • Pregunta

  • Saludos comunidad estoy aprendiendo Fluent API en CODE FIRST:

    Clase StudentFA:

    public class StudentFA
        {
            public int StudentKey { get; set; }
    
            public string StudentName { get; set; }
    
            public DateTime DateOfBirth { get; set; }
    
            public byte[] Photo { get; set; }
    
            public decimal Height { get; set; }
    
            public float Weight { get; set; }
    
            public Standard Standard { get; set; }  
         }

    Fluent Api:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Entity<StandardFA>().HasKey<int>(s => s.StandardKey);
    
                modelBuilder.Entity<StudentFA>().HasKey(s => new { s.StudentKey, s.StudentName });
    
                modelBuilder.Entity<StudentFA>()
                            .Property(p => p.DateOfBirth)   
                            .HasColumnName("Cumpleanos")           
                            .HasColumnOrder(2)              //tiene que ser la columna 2, pero no funciona
                            .HasColumnType("datetime2");    
            }

    En la base de datos me muestra:

    El atributo Cumpleanos no esta en la posicion 2

    Gracias por su tiempo


    • Editado RealMaster miércoles, 14 de enero de 2015 1:36
    miércoles, 14 de enero de 2015 1:34

Todas las respuestas

  • hola

    pero para que quieres definir el HasColumnOrder() ? conoces cual es la funcionalidad de ese metodo ?

    que pasa si simplemente lo quitas y solo defines el nombre y tipo de la propiedad

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de enero de 2015 8:33
  • Parece que el metodo HasColumnOrder(), funciona para el orden de columnas de claves primarias y claves foraneas compuestas.

    Algun metodo para cambiar el orden de valores que no son claves primarias y foraneas compuestas?


    • Editado RealMaster miércoles, 14 de enero de 2015 18:32
    miércoles, 14 de enero de 2015 18:30
  • >>Algun metodo para cambiar el orden de valores que no son claves primarias y foraneas compuestas?

    que orden quieres cambiar ? no necesitas definir ningun orden para los campos simples


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de enero de 2015 20:43
  • >>Algun metodo para cambiar el orden de valores que no son claves primarias y foraneas compuestas?

    que orden quieres cambiar ? no necesitas definir ningun orden para los campos simples

    Por ejemplo por codigo definir el orden de los campos simples, sin necesidad de codificar en un orden estricto los campos simples
    miércoles, 14 de enero de 2015 22:35
  • >>Por ejemplo por codigo definir el orden de los campos simples, sin necesidad de codificar en un orden estricto los campos simples

    la verdad no entendi, pero esto que planteas no hace falta

    EF define la query de forma automatica, el orden de los campos no afecta el mapping de los mismo con la clase

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 14 de enero de 2015 23:35
  • Bueno lo que prentendo hacer es por ejemplo tengo mis campos en este orden en la clase:

    Id //Clave Primaria

    ApellidoPaterno

    ApellidoMaterno

    Nombres

    Direccion

    y en la base de datos pues se guardaran tal cual de esta manera estan codificados (me refiero al orden de las columnas), yo necesito algun metodo para cambiar el orden de las columnas en la clase ej:

    Id //Clave primaria

    ApellidoPaterno

    ApellidoMaterno

    [pos2] //Algo para cambiar a la posicion 2 de la columna

    Nombres

    Direccion

    Luego de esto en la base de datos se reflejara:

    Id

    Nombres

    ApellidoPaterno

    ApellidoMaterno

    Direccion

    Todo esto en campos simples

    Parece que no es posible con Code First.

    Gracias


    • Editado RealMaster jueves, 15 de enero de 2015 21:23
    jueves, 15 de enero de 2015 21:22