18 messaggi dal 15 novembre 2013
Buon Giorno a tutti Non riesco a capire dove sbaglio,Quando salvo i dati ottengo un errore non riesco a capire se ho commesso qualche errore nel DB o dove.Vi vorrei Postare il Model La view ecc ma credo che sia una cosa lunga speriamo bene.
public class MainViewModel : ViewModelBase
    {
        /// <summary>
        /// Initializes a new instance of the MainViewModel class.
        /// </summary>
        /// 
         IDataAccessService _serviceProxy;

         ObservableCollection<Busta> _Bustas;

         public ObservableCollection<Busta> BustaOservable
         {
             get { return _Bustas; }
             set
             {
                 _Bustas = value;
                 RaisePropertyChanged("BustaOservable");
             }
         }

         ObservableCollection<Negozio> _Negozios;

         public ObservableCollection<Negozio> NegozioObser

         {
             get { return _Negozios; }
             set
             {
                 _Negozios = value;
                 RaisePropertyChanged("Negozio");
             }
         }

        Busta _Busta;
        public Busta Busta
        {
            get { return _Busta; }
            set
            {
                _Busta = value;
                RaisePropertyChanged("Busta");
            }
        }

        Negozio _Negozio;
        public Negozio NegozioSelezionato
        {
            get { return _Negozio; }
            set
            {
                _Negozio = value;
                RaisePropertyChanged("NegozioSelezionato");
            }
        }

        #region Command Object Declarations
       
        public RelayCommand<Busta> SaveCommand { get; set; }

        

       
        #endregion
        public MainViewModel(IDataAccessService servPxy)
        {
            _serviceProxy = servPxy;
            Busta = new Busta();
            NegozioSelezionato = new Negozio();
             
            SaveCommand = new RelayCommand<Busta>(SalvaBusta);
            NegozioObser = new ObservableCollection<Negozio>();
            
        }
//Metodo Per Salvare La Busta
 void SalvaBusta(Busta Bus)
{
    Bus.NegozioID = NegozioSelezionato.NegozioID;
    Busta.BustaID = _serviceProxy.CreateBusta(Bus);
    if (Busta.BustaID != 0)
    {
        BustaOservable.Add(Busta);
        RaisePropertyChanged("Busta");
    }

       
        }

//Metodo Per Caricare I dati Della Combobox
 public void GetNegozio()
 {
     
     foreach (var item in _serviceProxy.GetNegozio())
     {
         NegozioObser.Add(item);
     }
 }
    }
}



Questo è l'errore che ottengo:

System.NullReferenceException verificata
HResult=-2147467261
Message=Riferimento a un oggetto non impostato su un'istanza di oggetto.
Source=Prova1
StackTrace:
in Prova1.ViewModel.MainViewModel.SalvaBusta(Busta Bus) in k:\c#\MVVMLight\Prova1\Prova1\ViewModel\MainViewModel.cs:riga 102
InnerException:




https://onedrive.live.com/redir?resid=65A7E9473E0E0B5C%217686


Questo sono le tabelle:

[Table("Busta")]
    public partial class Busta
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int BustaID { get; set; }

        public int NegozioID { get; set; }

        [StringLength(20)]
        public string NomeCliente { get; set; }

        public virtual Negozio Negozio { get; set; }
    }


 [Table("Negozio")]
    public partial class Negozio
    {
        public Negozio()
        {
            Bustas = new HashSet<Busta>();
        }

        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int NegozioID { get; set; }

        [Required]
        [StringLength(10)]
        public string RagioneSociale { get; set; }

        public virtual ICollection<Busta> Bustas { get; set; }
    }

Modificato da nio74Maz il 22 novembre 2014 07.20 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
dovresti postare lo stack trace completo, così vediamo da quale metodo di EntityFramework si è generato l'errore.

Nello screenshot che hai postato, si vede che NegozioID è uguale ad 1, mentre la proprietà di navigazione Negozio è null.
Butto lì un'ipotesi: quando invochi il SaveChanges, EF fa il relationship fixup, ovvero vuole sanare quella discrepanza tra la FK e la proprietà di navigazione Negozio. Quindi cerca di assegnarle l'entità Negozio con ID=1 ma se questa non era presente nel contesto, allora potrebbe sorgere l'errore che hai riscontrato.

Se fosse effettivamente questo il problema, carica il Negozio con ID=1 nel contesto oppure, anziché recuperarlo dal database, prova a fare l'Attach di una nuova istanza di Negozio che abbia l'ID 1. Dovrebbe essere sufficiente.

ciao,
Moreno
Modificato da BrightSoul il 27 novembre 2014 00.26 -

Enjoy learning and just keep making
18 messaggi dal 15 novembre 2013
Buon Giorno Ho Risolto era un errore banalissimo Mi ero dimenticato di inizializare la ObservableCollection dove immagazzino i dati.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.