2016-03-25 1 views
0

Well im fügen Sie eine Anwendung zu tun, wo ich wie dieseeine Liste der Datenbank

public class Saldo 
{ 
    public Saldo() 
    { 
     Expenses = new List<Expese>(); 
     Incomes = new List<Income>(); 
    } 

    public int SaldoId { get; set; } 
    public List<Expense> Despesas { get; set; } 
    public List<Income> Rendimentos { get; set; } 
    public string ApplicationUserId { get; set; } 
} 

, was ich tun mag ein Modell habe, ist ein einzig Kosten zur Liste hinzufügen, aber es funktioniert nicht, wenn ich Ausgang auf der Konsole ist die Zählung es immer null in der Steuerung im dies zu tun:

public ActionResult Create([Bind(Include = "ExpenseId,TipoDespesaId,DespesaDescricao,DespesaValor,TipoPagamentoId,Data,Comentario")] Expense expense) 
    { 
     var userId = User.Identity.GetUserId(); 
     if (ModelState.IsValid) 
     { 

      var balance = db.Balance.Where(d => d.ApplicationUserId == userId).FirstOrDefault(); 


      expense.ApplicationUserId = userId; 

      if (balance == null) 
      { 
       Balance s = new Balance(); 
       s.Expense.Add(expense); 
       s.ApplicationUserId = userId; 
       db.Balance.Add(s);    
      } 
      else 
      { 
       Balance.Expense.Add(expense); 
      } 

      db.Expense.Add(expense); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

der Aufwand aus der Form kommt und an die Aktion übergeben wird

ich eine neue Instan erstellt ce of Balance es funktionierte das Hinzufügen der ApplicationUserId, aber die Kosten auf der Liste hat nicht funktioniert, kann mir jemand erklären, warum es passiert?

Ps: Sorry für mein schlechtes Englisch

+0

sein Was ist der "db" Variable? Sagst du es zu speichern? – David

+0

Ich habe die Frage bearbeitet und den ganzen Code gepostet, sorry sollte es vorher gepostet –

Antwort

1

Vielleicht ist es nur in der Übersetzung verloren, aber Ihr Modell keinen Sinn macht. Sie haben eine Liste von Ausgaben namens "Despesas", aber im Konstruktor nennen Sie es "Ausgaben". Was auch immer diese Liste aufgerufen wird, ist, was Sie Ihrem Ausgabenobjekt hinzufügen müssen. Statt

s.Expense.Add(expense); 

wäre es

s.Despesas.Add(expense); 
+0

nur in der Übersetzung verloren, die Kosten werden nie hinzugefügt, weiß nicht warum –