使用Entity Framework从表中选择所有字段

时间:2010-10-27 20:26:44

标签: c# visual-studio-2008 entity-framework

在下面的代码中,除了作为外键的字段外,所有字段都从表中返回。如何显示外键字段?我只想要一个等价于从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

3 个答案:

答案 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具有商业意义,那么将它添加到概念模型中没有任何问题。这也将使代码离散且可读。