【发布时间】:2015-11-10 20:09:57
【问题描述】:
我有:
数据库表:区域、肌肉
区域是人体上的一个区域(例如胸部) 肌肉是人体上的一块肌肉(例如三角肌)
肌肉有一个 RegoinId 作为外键。
这里是模型类:
public class Region
{
[Key]
public int RegionId { get; set; }
public string RegionName { get; set; }
public virtual ICollection<Muscle> Muscles { get; set; }
}
public class Muscle
{
[Key]
public int MuscleId { get; set; }
public string LatinName { get; set; }
public string DkName { get; set; }
public string EnName { get; set; }
public string Description { get; set; }
public int RegionId { get; set; }
public Region Region { get; set; }
}
然后我用以下方法搭建了一个 RegionsController:
// GET: api/Regions
public IQueryable<Region> GetRegions()
{
return db.Regions;
}
这工作正常,但该区域的 Muscles 属性为空。
那么我可以告诉 Entity Framework 在搭建控制器类时自动包含一个区域肌肉吗?
如果这太做梦了,那我自己怎么能包括肌肉呢?
我尝试了以下没有运气:
var regions = db.Regions.ForEachAsync(r => r.Muscles = db.Muscles.Where(m => m.RegionId == r.RegionId));
抱怨因为 r.Muscles 是 ICollection 而 db.Muscles 是 IQueryable 类型。
那么请问,我有哪些选择和最佳实践可以让我的区域锻炼出相应的肌肉。
(如果它对解决方案有任何意义,我的最终目标是为我的 angularJS 应用返回 json)
问候,一个卡住的程序员:)
【问题讨论】:
标签: asp.net entity-framework asp.net-web-api