在下面的代码中,除了作为外键的字段外,所有字段都从表中返回。如何显示外键字段?我只想要一个等价于从tableName中选择*。
public ActionResult ShowAllTables()
{
var model = new CSLA_StagingModel()
{
depots = db.CSLA_DEPOT.Where(c => c.DEPOT_ID == 10065).ToList<CSLA_DEPOT>(),
addresses = db.CSLA_ADDRESS.Where(a => a.CSLA_DEPOT.DEPOT_ID == 10065).ToList<CSLA_ADDRESS>(),
};
return View(model);
}
注意:我正在使用vs2008
编辑:我想在获得VS2010之前我可能会使用Linq来SQL
答案 0 :(得分:1)
没有SELECT *
。
但是,您可以投标 ID:
var q = from a in db.CSLA_ADDRESS
select new
{
ADDRESS_ID = a.ADDRESS_ID,
DEPOT_ID = a.CSLA_DEPOT.DEPOT_ID,
// etc.
};
答案 1 :(得分:1)
在Entity Framework 3.5和VS 2008中,外键隐藏在其导航属性(又名独立关联)下,并且无法通过目标实体对象直接访问。因此,为了访问它们,您需要通过其导航属性(例如CSLA_DEPOT
)来完成,就像Craig发布的代码一样。
答案 2 :(得分:0)
我会将FK字段添加为实体的缩放器属性。如果这个FK VALUE具有商业意义,那么将它添加到概念模型中没有任何问题。这也将使代码离散且可读。