2016-04-25 25 views
1

私はasp.net mvc 4を使ってWebアプリケーションを開発しており、AngularJSを使ってデータベースからデータを取得したいと考えています。angularjsを使用して、異なるテーブルデータベースからデータをフェッチする方法はありますか?

私の問題は、私は以下のような二つのテーブル(製品カテゴリ)を持っていることです。

public partial class Product 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public string imgurl { get; set; } 
    public int CategoryId { get; set; } 

    public virtual Category Category { get; set; } 
} 

public partial class Category 
{ 
    public Category() 
    { 
     this.Products = new HashSet<Product>(); 
    } 

    public int Id { get; set; } 
    public string Name { get; set; } 

    public virtual ICollection<Product> Products { get; set; } 
} 

私はこのような製品テーブルからng-repeatを使用してデータを反復処理したい:

Name category 
================ 
iphone - Mobiles 

のみ、私は

Name category Id 
================ 
iphone - 1 

ここではカテゴリ名を取得できませんmカテゴリテーブル。私はカテゴリーアイディアを得ることができます。

ng-repeatを使用してこの形式でデータベースからデータを取得する方法はありますか。

Name category 
    ================ 
iphone - Mobiles 

私はすでにそれらの関係の間に2つのテーブルからデータを取得したいと思います。

ありがとうございます。

+1

データアクセスAPIとは何ですか?エンティティフレームワークまたは他の? – Sampath

+0

使用している場所でクエリを表示できますか? – Sampath

+0

エンティティフレームワーク 'public JsonResult getAllProducts() { var products = db.Products.ToList(); return Json(products、JsonRequestBehavior.AllowGet); } ' – medo10

答えて

0

、以下のように更新

public JsonResult getAllProducts() 
{ 
     var products = db.Products 
        .Include(p => p.Category) 
        .ToList(); 

     return Json(products , JsonRequestBehavior.AllowGet); 
} 

Eager Loadingを使用して)してみてください:あなたがget method.Youを通じてオブジェクトのコレクションを取得することはできませんが、below.Thisを示すように、オブジェクトのコレクションでpostを使用する必要がありますされますちょうどサンプル。希望を得ることができることを願っています。

クエリは2つのテーブル間の結合をするために:その後

public JsonResult getAllProducts() 
    { 
     var products = from pr in db.Products 
         join ct in db.Categories 
         on pr.CategoryId equals ct.Id 
         select new 
         { 
          pr.Name, 
          pr.CategoryId, 
          CatName= ct.Name 
         }; 
      return Json(products , JsonRequestBehavior.AllowGet); 

        } 

、データを反復するためにNGリピートを使用して、次のように

public async Task<RefereeEditDto> GetRefereeForEditAsync(NullableIdInput<int> input) 
     { 
      var referee = await _refereeRepository.FirstOrDefaultAsync(p => p.Id == input.Id); 
      var result = referee.MapTo<RefereeEditDto>(); 
      return result; 
     } 
+0

残念なことに、仕事をしたり、データを取り出すことができません。 – medo10

+0

デバッグを行ったときに '製品'のステータスはどうなりますか? 'category'や何のデータがありますか? – Sampath

+0

このエラーが発生しました。あなたはここにそれを見ることができます: http://imgur.com/IwujEqX – medo10

0

最後に、私は...私の問題の解決策を見つけました:

<tr ng-repeat="product in products" > 
       <td>{{product.Name}}</td> 
       <td>{{product.CatName}}</td> 
       <td>{{product.CategoryId}}</td></tr> 

さて、...すべての物事が正常に動作して欲しい商品がフォーマットでデータをフェッチすることができ、すべてに感謝私を助けようとする人。

関連する問題