2016-03-23 25 views
0

私は基本的に人の経費と所得を管理するアプリケーションを持っていますが、費用はタイプによって決まります。ユーザーごとに異なります。 支出のタイプに最も適した例として、さまざまなオプションを用意することができますが、選択肢は1つだけです。これはドロップダウンリストによって実装されています。ユーザIDに関連付けられたドロップダウンリストに値を取得

モデルの費用:

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

} 

モデル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; } 
各ユーザーが支出の彼らの種類を持っていたし、彼らは私には、次のされてきたものを、互いに異なっていたことをことを意図していた何

私はそれを作成するユーザーに関連するすべてのExpenseTipeを取得したい、私はあなたが費用のtipeのすべてのリストを取得しないように、私はlinqクエリで何かをする必要があると思うが、ユーザーが私は知らないLinqのクエリでそれを行う方法は、ここでドロップダウンリストを塗りつぶすコントローラです。

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

私は私がviewBagにWHERE条件が必要だと思うが、それを行う方法を知らない:S

答えて

0

は自分db.TipoDespesasにwhere句を追加します。

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

うん、私は実際にいくつかの瞬間前にそれを解決し、そしてそれをここに投稿したかった、私はそれはそれから困難だったthaught、たぶん私はたくさんワットが行うが簡単で複雑:Dが、おかげで –

関連する問題