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");
}