SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: cehd en Jueves 4 de Agosto de 2011, 06:24

Título: Problema con linq en C#
Publicado por: cehd en Jueves 4 de Agosto de 2011, 06:24
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í

(http://i.imgur.com/9IApF.jpg)

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




Título: Re:Problema con linq en C#
Publicado por: cehd en Martes 16 de Agosto de 2011, 21:02
Nadie sabe??