Errore entity Framework e SQLite

di il
11 risposte

Errore entity Framework e SQLite

Ciao a tutti..
ho seriamente un problema con un progetto in c# e entity framework core ...

tutte le volte che provo ad aggiungere un record di una tabella collegata ottengo questo errore...
[CODE]Object reference not set to an instance of an object. notare che ho due tabelle una person
[CODE] public class Person { [Key] [Required] public int PersonID { get; set; } public string PersonCode { get; set; } public TPerson tPerson { get; set; } public string Name { get; set; } public string Surname { get; set; } public string FiscalCode { get; set; } public string VatCode { get; set; } [NotMapped] public string FullName { get { return Name + " " + Surname; } } public virtual ICollection<Contact> Contacts { get; set; } } quella contacts [CODE] public class Contact { [Key] [Required] public int ContactId { get; set; } // Collega i contatti alle persone public int IDPerson { get; set; } public virtual Person Person { get; set; } public TContact tContact { get; set; } public string Name { get; set; } public string Description { get; set; } } è da notare che in fase di migration e database update non ho errori
(come se aggiungo la singola persona)
questo il codice incriminato [CODE] public static void Main() { using (var db = new ASDDb()) { var newIndex = db.People.Count()==0 ? 0: db.People?.Max(a => a.PersonID) + 1 ?? 0; var ciccio = new Person { //PersonID = newIndex, Name = StringFunction.RndString(8, Chars: true), Surname = StringFunction.RndString(8, Chars: true), FiscalCode = StringFunction.RndString(15, Chars: true), tPerson = TPerson.Person, }; for (int i = 0; i < RandomNumber(1, 5); i++) { ciccio.Contacts.Add(new Contact { //ContactId = i, //IDPerson = ciccio.PersonID, Name = StringFunction.RndString(25, Chars: true), tContact = TContact.FaceBook }); }; db.People.Add(ciccio); db.SaveChanges(); lasciando perdere StringFunction.RndString(25, Chars: true) che mi crea una stringa casuale...

l'errore mi viene dato nella creazione di contact....

scusate se vi è utile questa è la stringa di connessione.... [CODE] protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder .UseSqlite("Data Source=ASDDb.db"); }

11 Risposte

  • Re: Errore entity Framework e SQLite

    TPerson == NULL ance anche TContact?
  • Re: Errore entity Framework e SQLite

    Tuc ha scritto:


    TPerson == NULL ance anche TContact?
    yes ma stesso medesimo errore
  • Re: Errore entity Framework e SQLite

    Object reference not set to an instance of an object.
    in pratica, una o più classi non sono creare.
    TPerson tp = new TPerson(); .... etc...
  • Re: Errore entity Framework e SQLite

    Tperosn è un enum
  • Re: Errore entity Framework e SQLite

    System.NullReferenceException
    HResult=0x80004003
    Message=Object reference not set to an instance of an object.
    Source=ASDGest
    StackTrace:
    at ASDGest.Program.Main() in E:\MyProject\ASDGest\Program.cs:line 52

    ho eliminato i campi di tipo enum ed ottengo cmq questo errore
  • Re: Errore entity Framework e SQLite

    Umm ciccio.Contacts e NULL?
    ciccio.Contacts = new Collection<Contact>();
    Linea 52 e ciccio.Contacts.Add(new Contact ???
  • Re: Errore entity Framework e SQLite

    .Contacts è la collection di contact allegata a Person...
    Sto provando ad aggiungervi un contatto....
  • Re: Errore entity Framework e SQLite

    Si parte che è vuota....
  • Re: Errore entity Framework e SQLite

    Sembra che con ciccio.Contacts.add non funzioni....

    facendo db.Contacts.add invece si

    mi ricordavo che col primo metodo si passava anche l'id di person o dico una gran ca**ata???
  • Re: Errore entity Framework e SQLite

    Non so se mi sono perso qualcosa, ma prima devi fare new di Contacts, no?
  • Re: Errore entity Framework e SQLite

    golosauro ha scritto:


    Non so se mi sono perso qualcosa, ma prima devi fare new di Contacts, no?
    il problema non è fare il new di contact...
    funziona anche facendolo dentro l'add...

    ma io ero convinto che facendo l'add dentro all'ICollection Contacts di ciccio mi abbinasse in modo automatico la chiave primaria...
    non mi funziona...
    devo abbinargliela io e aggiungere i dati nel dbset contacts
Devi accedere o registrarti per scrivere nel forum
11 risposte