1

我試圖在用ID調用的表中返回一個列值。用輸入ID返回一個列值

public String PenTypes(int?id, Pen pen) 
    { 
    int num; 

     var query = from d in db.Pens 
        where d.ID == 1 
        select d.Type; 

     num=Convert.ToInt(query); 
     return num; 

我不知道我哪裏出錯了。我知道它很簡單,但我對使用實體框架並不陌生。任何幫助,將不勝感激。

回答

2

我建議你使用DbSet<TEntity>.Find方法,如果您想通過ID來獲得實體:

var pen = db.Pens.Find(id); 
    if (pen == null) 
    // handle case when pen is not found 

    return pen.Type; // if type is string, then you possibly need to parse it 

或者你可以使用FirstOrDefault/SingleOrDefault

var pen = db.Pens.FirstOrDefault(p => p.ID == id); 

您當前的代碼中有幾個問題:

  • query將有的類型(其中T是pen.Type屬性的類型)。該值不能被轉換爲整數
  • id如果通過主鍵
  • 搜索如果num是整數,則返回方法的類型應該是int代替string
+0

不應爲空的:在「型'Pen'的屬性不能設置爲'String'值。您必須將此屬性設置爲'Decimal'類型的非空值。我該如何解決這個問題? – Mike

+0

@ user3272054什麼是Pen類的定義? –

+0

這是十進制類型 – Mike