none
Code First: Relaciones 1 a 0 o 1 consigo mismo RRS feed

  • Pregunta

  • Buenas, tengo una entidad llamada cierreDeCaja que tiene como vinculo una asociacion al Cierre De caja Anterior, y al cierre de caja Siguiente. Obviamente, la primer y la ultima de la cola, van a tener esas asociaciones en null. Entonces se forma una relacion 1 a 0 o 1.

    Estoy trabajando en windows form con EF 6 y code First. 

    El contexto lo defini asi:

    Public Class PollazosContext
    
        Inherits DbContext
    
    
    
        Public Overridable Property Productos() As DbSet(Of Producto)
        Public Overridable Property LineaFacturaSet() As DbSet(Of LineaFactura)
        Public Overridable Property UsuarioSet() As DbSet(Of Usuario)
        Public Overridable Property MovimientoCajaDiariaSet() As DbSet(Of MovimientoCajaDiaria)
        Public Overridable Property CierreDeCajaSet() As DbSet(Of CierreDeCaja)
        Protected Overrides Sub OnModelCreating(modelBuilder As DbModelBuilder)
            modelBuilder.Conventions.Remove(Of PluralizingTableNameConvention)()
            modelBuilder.Entity(Of CierreDeCaja)().HasOptional(Function(s) s.CierreDeCajaAnterior)
            modelBuilder.Entity(Of CierreDeCaja)().HasOptional(Function(s) s.CierreDeCajaSiguiente)
            'modelBuilder.Entity(Of CierreDeCaja)().HasOptional(Function(s) s.CierreDeCajaSiguiente)
        End Sub
    
    
    End Class

    La definicion delCierre de caja:

    Partial Public Class CierreDeCaja Public Property CierreDeCajaID As Integer Public Property Fecha As Date Public Property Saldo As Double Public Property CierreDeCajaAnteriorID As System.Nullable(Of Integer) Public Overridable Property Movimientos As ICollection(Of MovimientoCajaDiaria) = New HashSet(Of MovimientoCajaDiaria)

    <ForeignKey("CierreDeCajaAnteriorID")> _ Public Property CierreDeCajaAnterior As CierreDeCaja <ForeignKey("CierreDeCajaSiguienteID")> _ Public Property CierreDeCajaSiguiente As CierreDeCaja


    Asi como está, no funciona, me tira el siguiente error:

    Información adicional: Unable to determine the principal end of an association between the types 'DataAccessCF.CierreDeCaja' and 'DataAccessCF.CierreDeCaja'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations.

    Se puede hacer esto!?

    saludos

    viernes, 21 de febrero de 2014 23:20

Todas las respuestas