asp.net实体框架代码第一个外键无法检索

时间:2011-11-22 14:19:53

标签: asp.net entity-framework-4.1

我正在尝试通过交易检索公司。我已经包含了实体和检索方法。如图所示,这些公司已经在内部交易。

//company entity
public class Companies
{
  public int id { get; set; }
  public string companyID { get; set; }
  public string companyName { get; set; }
  public bool companyMointor { get; set; }   
}

//trade entity
public class Trade
{
  public int id { get; set; }
  public DateTime tradeDate { get; set; }
  public double tradePrice { get; set; }
  public int tradeQuantity  { get; set; }
  public Companies tradeCompany { get; set; }
  public int type { get; set; }

  public types tradeType 
  {
    get { return (Entities.types)type; }
    set { type = (int) value; }
  }
}

//methods to retrieve
public List<Trade> getTrade()
{
  List<Trade> trades = (from t in dbContext.trades
                        orderby t.tradeDate descending             
                        select t).ToList();
  return trades;
}

2 个答案:

答案 0 :(得分:1)

使用Include方法预先加载导航属性。

public List<Trade> getTrade()
{
    List<Trade> trades=dbContext.trades.Include(t => t.tradeCompany)
      .OrderBy(t => t.tradeDate).ToList();

    return trades;
}

修改:如果您使用的是ObjectContext API,请尝试以下

public List<Trade> getTrade()
{
    List<Trade> trades=dbContext.trades.Include("tradeCompany")
      .OrderBy(t => t.tradeDate).ToList();

    return trades;
}

答案 1 :(得分:1)

将您的gettrade方法更改为包含行:

//methods to retrieve 
    public List<Trade> getTrade() 
    { 
        List<Trade> trades=(from t in dbContext.trades 
                .Include("tradeCompany")
                orderby t.tradeDate descending 

                select t).ToList(); 
        return trades; 
    }