Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

null excpetion

ola , estou obtendo esta execaçao mas nao entendi o motivo

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using TesteAs.Models;

namespace testeArquivo
{
    class Program
    {
        static void Main(string[] args)
        {
            var lista = new List<Turmas>();
            var aluno = new List<Alunos>();






            using(var context = new TexteContext()) { 
            using(var arui = new StreamReader("aluno.csv"))
            {


                while (!arui.EndOfStream)
                {

                    var linhas = arui.ReadLine().Split(';');

                    var nTurma = Int32.Parse(linhas[0]);
                    var alunos = linhas[1];
                    var nota1 = linhas[2];
                    var nota2 = linhas[3];
                    var nota3 = linhas[4];

                    Provas p1 = new Provas(Double.Parse(nota1));
                    Provas p2 = new Provas(Double.Parse(nota2));
                    Provas p3 = new Provas(Double.Parse(nota3));

                    //Console.WriteLine(alunos);
                    //Console.WriteLine(nota1);
                    Alunos al = new Alunos(alunos,new List<Provas>());

                    al.AddProva(p1);
                    al.AddProva(p2);
                    al.AddProva(p3);



                   var turma = context.turmas.Find(nTurma);

                    if (turma == null)
                    {
                        Turmas t = new Turmas(nTurma, new List<Alunos>());
                        t.AddAluno(al);
                        context.turmas.Add(t);

                         context.SaveChanges();
                    }
                    else
                    {
                        turma.AddAluno(al);

                        context.SaveChanges();
                    }


                }



            }
            }


            foreach (var item in lista)
            {
                foreach (var item2 in item.Aluno)
                {
                    Console.Write(item.Id+"------");
                    Console.Write(item2.Nome);
                    Console.WriteLine();

                }
            }
            //var arqui = File.ReadAllText("aluno.csv");

            //Console.WriteLine(arqui.Length);


            //Console.WriteLine(arqui);
        }
    }
}



using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Threading.Tasks;

namespace TesteAs.Models
{
    public class Turmas
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        private int turmaId;
        private List<Alunos> aluno;

        protected Turmas()
        {

        }

        public Turmas(int turmaId, List<Alunos> aluno)
        {
            this.turmaId = turmaId;
            this.aluno = aluno;
        }

        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int Id { get { return turmaId; } set { turmaId = value; } }
        public List<Alunos> Aluno { get { return aluno; } }


        public void AddAluno(Alunos Aluno)
        {
            aluno.Add(Aluno);
        }


    }
}
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at TesteAs.Models.Turmas.AddAluno(Alunos Aluno) in C:\Users\Luan Figueiredo\source\repos\testeArquivo\testeArquivo\Turmas.cs:line 33
   at testeArquivo.Program.Main(String[] args) in C:\Users\Luan Figueiredo\source\repos\testeArquivo\testeArquivo\Program.cs:line 63
1 resposta

Olá Luan, tudo bem?

Pelo que vi no código, tem algumas coisas que não entendi muito bem.

Mas me parece que está tentando adicionar as provas em al, mas os alunos já foram adicionados anteriormente do arquivo .csv.

Você fez os debugs para entender qual é a situação do objeto t, consequentemente a situação de turma, depois a de al?

Simplesmente essa parte do código sem o projeto em mãos fica muito difícil saber porque o objeto al está vazio na hora de chamar o AddAluno(al);

As variáveis estão com os valores corretos até chegar nessa linha que citei acima?

No aguardo!