2011-11-22 91 views
0

我試圖檢索公司的交易。我已經包含了entites和檢索方法。如圖所示,這些公司已經在內部交易。asp.net實體框架代碼第一個外鍵不能檢索

//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; 
} 
+0

什麼是你的問題,是公司變空?在交易清單中? –

+0

yes,is empty ... – user2514963

回答

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; 
} 
+0

無法將lambda表達式轉換爲類型'string',因爲它不是委託類型 – user2514963

+0

指定的Include路徑無效。 EntityType'Shares.Entities.Trade'不聲明導航屬性,名稱爲'公司'。 – user2514963

+0

@ user974459您是否用'Companies'替換了'tradeCompany'參數? – Eranga

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; 
    } 
+0

指定的包含路徑無效。 EntityType'Shares.Entities.Trade'不聲明導航屬性,名稱爲'公司'。 – user2514963