CLR: .Net / Mono / Boo / Otros CLR > C#

 Problema con linq en C#

(1/1)

cehd:
Tengo las siguientes tablas en SQL 2008

Reserva
ID_reserva PK
mas datos

Mesas
IdMesa PK 
masdatos

Mesas_en_reserva
IDMesas PK, FK
ID_Reservas PK, FK

Bueno usé ADO y POCO para mapear las tablas a .net

Resulta que la imagen del mapeo me quedó así



Resulta que la tabla mesas en reserva se perdió en el mapeo
Hasta ahi no tengo problemas.

Para hacer una consulta sobre la tabla mesas en reserva haglo esto:

--- Código: C# ---     var querry = from i in db.RESERVA                                                 select i; foreach (var value in querry)            {                System.Console.WriteLine(value.IDCLIENTE);               foreach (var mesas in value.MESA)             {                                if (mesas.ID_MESA.Equals(1))                {                    System.Console.WriteLine("soy el rey del 1");                }               System.Console.WriteLine(mesas.ID_MESA);               System.Console.WriteLine(mesas.ID_MESA.GetType());            }             }
El problema lo tengo  a la hora que necesite hacer CRUD sobre la tabla mesas en reserva...

Les dejo el codigo de reserva.cs

--- Código: C# ---//------------------------------------------------------------------------------// <auto-generated>//     This code was generated from a template.////     Changes to this file may cause incorrect behavior and will be lost if//     the code is regenerated.// </auto-generated>//------------------------------------------------------------------------------ using System;using System.Collections;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Collections.Specialized; namespace Modelo{    public partial class RESERVA    {        #region Primitive Properties            public virtual int ID_RESERVA        {            get;            set;        }            public virtual int IDCLIENTE        {            get { return _iDCLIENTE; }            set            {                if (_iDCLIENTE != value)                {                    if (CLIENTE != null && CLIENTE.IDCLIENTE != value)                    {                        CLIENTE = null;                    }                    _iDCLIENTE = value;                }            }        }        private int _iDCLIENTE;            public virtual Nullable<int> DIA_RESERVA        {            get;            set;        }            public virtual Nullable<int> ANO_RESERVA        {            get;            set;        }            public virtual Nullable<int> MES_RESERVA        {            get;            set;        }            public virtual Nullable<int> PERSONAS_RES        {            get;            set;        }            public virtual Nullable<int> GARANTIA        {            get;            set;        }            public virtual Nullable<int> NUMERO_BOLETA        {            get;            set;        }            public virtual string ACOTACION        {            get;            set;        }            public virtual Nullable<bool> RESERVA_EFECTIVA        {            get;            set;        }            public virtual Nullable<int> HORA_INICIO_RESERVA        {            get;            set;        }            public virtual Nullable<int> MINUTO_INICIO_RESERVA        {            get;            set;        }            public virtual Nullable<int> HORA_FIN_RESERVA        {            get;            set;        }            public virtual Nullable<int> MINUTO_FIN_RESERVA        {            get;            set;        }         #endregion        #region Navigation Properties            public virtual CLIENTE CLIENTE        {            get { return _cLIENTE; }            set            {                if (!ReferenceEquals(_cLIENTE, value))                {                    var previousValue = _cLIENTE;                    _cLIENTE = value;                    FixupCLIENTE(previousValue);                }            }        }        private CLIENTE _cLIENTE;            public virtual ICollection<DETALLE_PLATOS_RESERVA> DETALLE_PLATOS_RESERVA        {            get            {                if (_dETALLE_PLATOS_RESERVA == null)                {                    var newCollection = new FixupCollection<DETALLE_PLATOS_RESERVA>();                    newCollection.CollectionChanged += FixupDETALLE_PLATOS_RESERVA;                    _dETALLE_PLATOS_RESERVA = newCollection;                }                return _dETALLE_PLATOS_RESERVA;            }            set            {                if (!ReferenceEquals(_dETALLE_PLATOS_RESERVA, value))                {                    var previousValue = _dETALLE_PLATOS_RESERVA as FixupCollection<DETALLE_PLATOS_RESERVA>;                    if (previousValue != null)                    {                        previousValue.CollectionChanged -= FixupDETALLE_PLATOS_RESERVA;                    }                    _dETALLE_PLATOS_RESERVA = value;                    var newValue = value as FixupCollection<DETALLE_PLATOS_RESERVA>;                    if (newValue != null)                    {                        newValue.CollectionChanged += FixupDETALLE_PLATOS_RESERVA;                    }                }            }        }        private ICollection<DETALLE_PLATOS_RESERVA> _dETALLE_PLATOS_RESERVA;            public virtual ICollection<VISTA_RESERVA> VISTA_RESERVA        {            get            {                if (_vISTA_RESERVA == null)                {                    var newCollection = new FixupCollection<VISTA_RESERVA>();                    newCollection.CollectionChanged += FixupVISTA_RESERVA;                    _vISTA_RESERVA = newCollection;                }                return _vISTA_RESERVA;            }            set            {                if (!ReferenceEquals(_vISTA_RESERVA, value))                {                    var previousValue = _vISTA_RESERVA as FixupCollection<VISTA_RESERVA>;                    if (previousValue != null)                    {                        previousValue.CollectionChanged -= FixupVISTA_RESERVA;                    }                    _vISTA_RESERVA = value;                    var newValue = value as FixupCollection<VISTA_RESERVA>;                    if (newValue != null)                    {                        newValue.CollectionChanged += FixupVISTA_RESERVA;                    }                }            }        }        private ICollection<VISTA_RESERVA> _vISTA_RESERVA;            public virtual ICollection<MESA> MESA        {            get            {                if (_mESA == null)                {                    var newCollection = new FixupCollection<MESA>();                    newCollection.CollectionChanged += FixupMESA;                    _mESA = newCollection;                }                return _mESA;            }            set            {                if (!ReferenceEquals(_mESA, value))                {                    var previousValue = _mESA as FixupCollection<MESA>;                    if (previousValue != null)                    {                        previousValue.CollectionChanged -= FixupMESA;                    }                    _mESA = value;                    var newValue = value as FixupCollection<MESA>;                    if (newValue != null)                    {                        newValue.CollectionChanged += FixupMESA;                    }                }            }        }        private ICollection<MESA> _mESA;         #endregion        #region Association Fixup            private void FixupCLIENTE(CLIENTE previousValue)        {            if (previousValue != null && previousValue.RESERVA.Contains(this))            {                previousValue.RESERVA.Remove(this);            }                if (CLIENTE != null)            {                if (!CLIENTE.RESERVA.Contains(this))                {                    CLIENTE.RESERVA.Add(this);                }                if (IDCLIENTE != CLIENTE.IDCLIENTE)                {                    IDCLIENTE = CLIENTE.IDCLIENTE;                }            }        }            private void FixupDETALLE_PLATOS_RESERVA(object sender, NotifyCollectionChangedEventArgs e)        {            if (e.NewItems != null)            {                foreach (DETALLE_PLATOS_RESERVA item in e.NewItems)                {                    item.RESERVA = this;                }            }                if (e.OldItems != null)            {                foreach (DETALLE_PLATOS_RESERVA item in e.OldItems)                {                    if (ReferenceEquals(item.RESERVA, this))                    {                        item.RESERVA = null;                    }                }            }        }            private void FixupVISTA_RESERVA(object sender, NotifyCollectionChangedEventArgs e)        {            if (e.NewItems != null)            {                foreach (VISTA_RESERVA item in e.NewItems)                {                    item.RESERVA = this;                }            }                if (e.OldItems != null)            {                foreach (VISTA_RESERVA item in e.OldItems)                {                    if (ReferenceEquals(item.RESERVA, this))                    {                        item.RESERVA = null;                    }                }            }        }            private void FixupMESA(object sender, NotifyCollectionChangedEventArgs e)        {            if (e.NewItems != null)            {                foreach (MESA item in e.NewItems)                {                    if (!item.RESERVA.Contains(this))                    {                        item.RESERVA.Add(this);                    }                }            }                if (e.OldItems != null)            {                foreach (MESA item in e.OldItems)                {                    if (item.RESERVA.Contains(this))                    {                        item.RESERVA.Remove(this);                    }                }            }        }         #endregion    }}
Saludos y muchas gracias por las molestias




cehd:
Nadie sabe??

Navegación

[0] Índice de Mensajes

Ir a la versión completa