• Domingo 22 de Diciembre de 2024, 17:31

Autor Tema:  Problema con linq en C#  (Leído 1455 veces)

cehd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema con linq en C#
« en: Jueves 4 de Agosto de 2011, 06:24 »
0
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#
  1.      var querry = from i in db.RESERVA                        
  2.                          select i;
  3.  
  4. foreach (var value in querry)
  5.             {
  6.                 System.Console.WriteLine(value.IDCLIENTE);
  7.                foreach (var mesas in value.MESA)
  8.  
  9.             {
  10.                
  11.                 if (mesas.ID_MESA.Equals(1))
  12.                 {
  13.                     System.Console.WriteLine("soy el rey del 1");
  14.                 }
  15.                System.Console.WriteLine(mesas.ID_MESA);
  16.                System.Console.WriteLine(mesas.ID_MESA.GetType());
  17.             }
  18.             }

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#
  1. //------------------------------------------------------------------------------
  2. // <auto-generated>
  3. //     This code was generated from a template.
  4. //
  5. //     Changes to this file may cause incorrect behavior and will be lost if
  6. //     the code is regenerated.
  7. // </auto-generated>
  8. //------------------------------------------------------------------------------
  9.  
  10. using System;
  11. using System.Collections;
  12. using System.Collections.Generic;
  13. using System.Collections.ObjectModel;
  14. using System.Collections.Specialized;
  15.  
  16. namespace Modelo
  17. {
  18.     public partial class RESERVA
  19.     {
  20.         #region Primitive Properties
  21.    
  22.         public virtual int ID_RESERVA
  23.         {
  24.             get;
  25.             set;
  26.         }
  27.    
  28.         public virtual int IDCLIENTE
  29.         {
  30.             get { return _iDCLIENTE; }
  31.             set
  32.             {
  33.                 if (_iDCLIENTE != value)
  34.                 {
  35.                     if (CLIENTE != null && CLIENTE.IDCLIENTE != value)
  36.                     {
  37.                         CLIENTE = null;
  38.                     }
  39.                     _iDCLIENTE = value;
  40.                 }
  41.             }
  42.         }
  43.         private int _iDCLIENTE;
  44.    
  45.         public virtual Nullable<int> DIA_RESERVA
  46.         {
  47.             get;
  48.             set;
  49.         }
  50.    
  51.         public virtual Nullable<int> ANO_RESERVA
  52.         {
  53.             get;
  54.             set;
  55.         }
  56.    
  57.         public virtual Nullable<int> MES_RESERVA
  58.         {
  59.             get;
  60.             set;
  61.         }
  62.    
  63.         public virtual Nullable<int> PERSONAS_RES
  64.         {
  65.             get;
  66.             set;
  67.         }
  68.    
  69.         public virtual Nullable<int> GARANTIA
  70.         {
  71.             get;
  72.             set;
  73.         }
  74.    
  75.         public virtual Nullable<int> NUMERO_BOLETA
  76.         {
  77.             get;
  78.             set;
  79.         }
  80.    
  81.         public virtual string ACOTACION
  82.         {
  83.             get;
  84.             set;
  85.         }
  86.    
  87.         public virtual Nullable<bool> RESERVA_EFECTIVA
  88.         {
  89.             get;
  90.             set;
  91.         }
  92.    
  93.         public virtual Nullable<int> HORA_INICIO_RESERVA
  94.         {
  95.             get;
  96.             set;
  97.         }
  98.    
  99.         public virtual Nullable<int> MINUTO_INICIO_RESERVA
  100.         {
  101.             get;
  102.             set;
  103.         }
  104.    
  105.         public virtual Nullable<int> HORA_FIN_RESERVA
  106.         {
  107.             get;
  108.             set;
  109.         }
  110.    
  111.         public virtual Nullable<int> MINUTO_FIN_RESERVA
  112.         {
  113.             get;
  114.             set;
  115.         }
  116.  
  117.         #endregion
  118.         #region Navigation Properties
  119.    
  120.         public virtual CLIENTE CLIENTE
  121.         {
  122.             get { return _cLIENTE; }
  123.             set
  124.             {
  125.                 if (!ReferenceEquals(_cLIENTE, value))
  126.                 {
  127.                     var previousValue = _cLIENTE;
  128.                     _cLIENTE = value;
  129.                     FixupCLIENTE(previousValue);
  130.                 }
  131.             }
  132.         }
  133.         private CLIENTE _cLIENTE;
  134.    
  135.         public virtual ICollection<DETALLE_PLATOS_RESERVA> DETALLE_PLATOS_RESERVA
  136.         {
  137.             get
  138.             {
  139.                 if (_dETALLE_PLATOS_RESERVA == null)
  140.                 {
  141.                     var newCollection = new FixupCollection<DETALLE_PLATOS_RESERVA>();
  142.                     newCollection.CollectionChanged += FixupDETALLE_PLATOS_RESERVA;
  143.                     _dETALLE_PLATOS_RESERVA = newCollection;
  144.                 }
  145.                 return _dETALLE_PLATOS_RESERVA;
  146.             }
  147.             set
  148.             {
  149.                 if (!ReferenceEquals(_dETALLE_PLATOS_RESERVA, value))
  150.                 {
  151.                     var previousValue = _dETALLE_PLATOS_RESERVA as FixupCollection<DETALLE_PLATOS_RESERVA>;
  152.                     if (previousValue != null)
  153.                     {
  154.                         previousValue.CollectionChanged -= FixupDETALLE_PLATOS_RESERVA;
  155.                     }
  156.                     _dETALLE_PLATOS_RESERVA = value;
  157.                     var newValue = value as FixupCollection<DETALLE_PLATOS_RESERVA>;
  158.                     if (newValue != null)
  159.                     {
  160.                         newValue.CollectionChanged += FixupDETALLE_PLATOS_RESERVA;
  161.                     }
  162.                 }
  163.             }
  164.         }
  165.         private ICollection<DETALLE_PLATOS_RESERVA> _dETALLE_PLATOS_RESERVA;
  166.    
  167.         public virtual ICollection<VISTA_RESERVA> VISTA_RESERVA
  168.         {
  169.             get
  170.             {
  171.                 if (_vISTA_RESERVA == null)
  172.                 {
  173.                     var newCollection = new FixupCollection<VISTA_RESERVA>();
  174.                     newCollection.CollectionChanged += FixupVISTA_RESERVA;
  175.                     _vISTA_RESERVA = newCollection;
  176.                 }
  177.                 return _vISTA_RESERVA;
  178.             }
  179.             set
  180.             {
  181.                 if (!ReferenceEquals(_vISTA_RESERVA, value))
  182.                 {
  183.                     var previousValue = _vISTA_RESERVA as FixupCollection<VISTA_RESERVA>;
  184.                     if (previousValue != null)
  185.                     {
  186.                         previousValue.CollectionChanged -= FixupVISTA_RESERVA;
  187.                     }
  188.                     _vISTA_RESERVA = value;
  189.                     var newValue = value as FixupCollection<VISTA_RESERVA>;
  190.                     if (newValue != null)
  191.                     {
  192.                         newValue.CollectionChanged += FixupVISTA_RESERVA;
  193.                     }
  194.                 }
  195.             }
  196.         }
  197.         private ICollection<VISTA_RESERVA> _vISTA_RESERVA;
  198.    
  199.         public virtual ICollection<MESA> MESA
  200.         {
  201.             get
  202.             {
  203.                 if (_mESA == null)
  204.                 {
  205.                     var newCollection = new FixupCollection<MESA>();
  206.                     newCollection.CollectionChanged += FixupMESA;
  207.                     _mESA = newCollection;
  208.                 }
  209.                 return _mESA;
  210.             }
  211.             set
  212.             {
  213.                 if (!ReferenceEquals(_mESA, value))
  214.                 {
  215.                     var previousValue = _mESA as FixupCollection<MESA>;
  216.                     if (previousValue != null)
  217.                     {
  218.                         previousValue.CollectionChanged -= FixupMESA;
  219.                     }
  220.                     _mESA = value;
  221.                     var newValue = value as FixupCollection<MESA>;
  222.                     if (newValue != null)
  223.                     {
  224.                         newValue.CollectionChanged += FixupMESA;
  225.                     }
  226.                 }
  227.             }
  228.         }
  229.         private ICollection<MESA> _mESA;
  230.  
  231.         #endregion
  232.         #region Association Fixup
  233.    
  234.         private void FixupCLIENTE(CLIENTE previousValue)
  235.         {
  236.             if (previousValue != null && previousValue.RESERVA.Contains(this))
  237.             {
  238.                 previousValue.RESERVA.Remove(this);
  239.             }
  240.    
  241.             if (CLIENTE != null)
  242.             {
  243.                 if (!CLIENTE.RESERVA.Contains(this))
  244.                 {
  245.                     CLIENTE.RESERVA.Add(this);
  246.                 }
  247.                 if (IDCLIENTE != CLIENTE.IDCLIENTE)
  248.                 {
  249.                     IDCLIENTE = CLIENTE.IDCLIENTE;
  250.                 }
  251.             }
  252.         }
  253.    
  254.         private void FixupDETALLE_PLATOS_RESERVA(object sender, NotifyCollectionChangedEventArgs e)
  255.         {
  256.             if (e.NewItems != null)
  257.             {
  258.                 foreach (DETALLE_PLATOS_RESERVA item in e.NewItems)
  259.                 {
  260.                     item.RESERVA = this;
  261.                 }
  262.             }
  263.    
  264.             if (e.OldItems != null)
  265.             {
  266.                 foreach (DETALLE_PLATOS_RESERVA item in e.OldItems)
  267.                 {
  268.                     if (ReferenceEquals(item.RESERVA, this))
  269.                     {
  270.                         item.RESERVA = null;
  271.                     }
  272.                 }
  273.             }
  274.         }
  275.    
  276.         private void FixupVISTA_RESERVA(object sender, NotifyCollectionChangedEventArgs e)
  277.         {
  278.             if (e.NewItems != null)
  279.             {
  280.                 foreach (VISTA_RESERVA item in e.NewItems)
  281.                 {
  282.                     item.RESERVA = this;
  283.                 }
  284.             }
  285.    
  286.             if (e.OldItems != null)
  287.             {
  288.                 foreach (VISTA_RESERVA item in e.OldItems)
  289.                 {
  290.                     if (ReferenceEquals(item.RESERVA, this))
  291.                     {
  292.                         item.RESERVA = null;
  293.                     }
  294.                 }
  295.             }
  296.         }
  297.    
  298.         private void FixupMESA(object sender, NotifyCollectionChangedEventArgs e)
  299.         {
  300.             if (e.NewItems != null)
  301.             {
  302.                 foreach (MESA item in e.NewItems)
  303.                 {
  304.                     if (!item.RESERVA.Contains(this))
  305.                     {
  306.                         item.RESERVA.Add(this);
  307.                     }
  308.                 }
  309.             }
  310.    
  311.             if (e.OldItems != null)
  312.             {
  313.                 foreach (MESA item in e.OldItems)
  314.                 {
  315.                     if (item.RESERVA.Contains(this))
  316.                     {
  317.                         item.RESERVA.Remove(this);
  318.                     }
  319.                 }
  320.             }
  321.         }
  322.  
  323.         #endregion
  324.     }
  325. }

Saludos y muchas gracias por las molestias




« última modificación: Viernes 26 de Agosto de 2011, 03:43 por cehd »

cehd

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:Problema con linq en C#
« Respuesta #1 en: Martes 16 de Agosto de 2011, 21:02 »
0
Nadie sabe??