我正在使用ASP.NET MVC 4开发Web应用程序,我想使用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
我无法从类别表中检索类别名称。但我可以检索categoryId。
有没有办法使用ng-repeat
以这种格式从数据库中获取数据。
Name category
================
iphone - Mobiles
我想从他们之间的两个表中获取数据关系。
提前致谢。
答案 0 :(得分:0)
请尝试如下所示(使用Eager Loading)
public JsonResult getAllProducts()
{
var products = db.Products
.Include(p => p.Category)
.ToList();
return Json(products , JsonRequestBehavior.AllowGet);
}
更新:您无法通过get
方法检索对象集合。您必须将post
与对象集合一起使用,如下所示。这只是一个示例。希望你能得到这个想法。
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;
}
答案 1 :(得分:0)
最后,我找到了我的问题的解决方案......如下:
查询两个表之间的连接:
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-repeat迭代数据:
<tr ng-repeat="product in products" >
<td>{{product.Name}}</td>
<td>{{product.CatName}}</td>
<td>{{product.CategoryId}}</td></tr>
现在,每件事情都运转良好,我可以获取我想要的格式的数据......感谢每个人都试图帮助我。