2016-03-23 2 views
0

Ich habe eine Anwendung, die im Grunde steuert die Ausgaben und Einkommen einer Person, und eine Ausgabe ist mit einer Art von Ausgaben verbunden, diese Arten von Ausgaben können vom Benutzer erstellt werden und müssen unterscheiden sich von Benutzer zu Benutzer. Beispiel für die Art der Ausgaben können verschiedene Optionen zur Verfügung haben und ich kann nur eine auswählen, dies wurde durch eine Dropdown-Liste implementiert. Was war beabsichtigt, dass jeder Benutzer seine Ausgabenarten hatten und dass sie sich voneinander unterscheiden waren, was ich habe, ist die folgende:Werte zu einer Dropdown-Liste mit der UserId

Modell Kosten:

public class Expense 
{ 
    public int TipeExpenseId { get; set; } 

    public int ExpenseId { get; set; } 

    [Display(Name = "Descrição da Despesa")] 
    [Required] 
    public string ExpenseDescription { get; set; } 

    [Display(Name = "Valor")] 
    [Required] 
    public decimal ExpenseValue { get; set; } 

    public int PayementTypeId { get; set; } 

    [Display(Name = "Data")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}",ApplyFormatInEditMode = true)] 
    [Required] 
    public DateTime Data { get; set; } 

    public ExpenseTipe ExpenseTipe { get; set; } 

    public PaymentType PaymentType { get; set; } 

    [Display(Name = "Comentário")] 
    public string Coment { get; set; } 

    [ForeignKey("ApplicationUserId")] 
    public virtual ApplicationUser User { get; set; } 

    public string ApplicationUserId { get; set; } 

} 

Modell TipeExpense:

public int ExpenseTipeId { get; set; } 
[Display(Name = "Tipo de Despesa")] 
[Required] 
public string ExpenseTipeName { get; set; } 

public virtual ApplicationUser User { get; set; } 

public string ApplicationUserId { get; set; } 

Ich möchte alle ExpenseTipe im Zusammenhang mit dem Benutzer, dass es erstellen, ich denke, ich muss etwas in der Linq-Abfrage zu tun, um nicht die Liste der Ausgaben, sondern nur die Ausgaben, die die gleiche ID wie haben der Benutzer, aber ich weiß es nicht Wie man es in der Linq-Abfrage macht, hier ist mein Controller, der die DropDown-Liste füllt.

public ActionResult Create([Bind(Include = "DespesaId,TipoDespesaId,DespesaDescricao,DespesaValor,TipoPagamentoId,Data,Comentario")] Despesa despesa) 
{ 
    if (ModelState.IsValid) 
    { 
     despesa.ApplicationUserId = User.Identity.GetUserId(); 
     db.Despesas.Add(despesa); 
     db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

    ViewBag.TipoDespesaId = new SelectList(db.TipoDespesas, "TipoDespesaId", "TipoDespesaNome", despesa.TipoDespesaId); 
    ViewBag.TipoPagamentoId = new SelectList(db.TipoPagamentos, "TipoPagamentoId", "TipoPagamentoNome", despesa.TipoPagamentoId); 
    return View(despesa); 
} 

Ich glaube, ich brauche eine, wo Bedingung in der viewBag aber nicht wissen, wie es zu tun: S

Antwort

0

fügen Sie einfach eine where-Klausel zu Ihren db.TipoDespesas.

db.TipoDespesas.where(x=> x.applicationUserid == UserId) 
+0

Yeah ich löste es vor wenigen Momenten, und wollte es hier posten, ich dachte, es war schwieriger als das, vielleicht kompliziert ich viel wat ist einfach zu tun: D, aber danke –