2017-04-10 3 views
0

リストを含むビューモデル用に定義されたクラスがあり、モデルの作成時にそのリストに値を設定したいと思います。ViewModelクラスレベルでデータを取得

は、例えば、これは動作しますが、私は間違ってそれをやっているような気がします:Itemクラスが作成されるとき

public class Item 
{ 
    public string ItemNum {get; set;} 

    public List<Manufacturers> Manufacturers 
    { 
      get 
      { 
       ApplicationContext() _context = new ApplicationContext(); 
       return _context.Manufacturers.Where(i => i.Item == this.ItemNum).ToList(); 
      } 
    } 
} 

は基本的に私が出て行くと表示した情報で動作するように関連付けられたリストを移入します。

これを行うより良い方法はありますか?

+1

あなたが本当にデータベースを毎回再照会する必要がありますか、この要求されたに合うことができますか?それは頻繁に変化し、最新のものにする必要がありますか?または、このオブジェクトのインスタンスが作成され、オブジェクト自体に結果を格納するときに、データベースを一度*照会するだけですか? – David

+0

@Davidそのようなものの例は何ですか?一度は十分だと思いますが、オブジェクトの生成を呼び出すときにforeach文をループせずにどうやってやるのか考えることはできません。 – dev53

答えて

0

はデフォルトparameterconstructorが法案

public class Item 
{ 
    //other properties 
    public string ItemNum {get; set;} 
    private List<Manufacturers> _Manufacturers 
    private ApplicationContext() _context; 
    public Item (string ItemNum = "some default text"){ 
     _context = new ApplicationContext(); 
     _Manufacturers = _context.Manufacturers.Where(i => i.Item == 
     this.ItemNum).ToList(); 
    } 
    public List<Manufacturers> Manufacturers 
    { 
     get 
     { 
     return _Manufacturers; 
     } 
    } 
} 
関連する問題