2017-01-27 21 views
1

你好一起關注我的代碼:Lambda表達式 - 錯誤無法隱式轉換類型'vicoapi.Pictures'到'System.Collections.Generic.List <vicoapi.Pictures>」(CS0029)

public class SampleData : DropCreateDatabaseIfModelChanges<VicoTvEntities> 
{ 
    protected override void Seed(VicoTvEntities context) 
    { 
     var pictures = new List<Pictures>{ 
      new Pictures { Name = "Testbild", Url="localhost/test" } 
     }; 
     var user = new List<User>{ 
      new User{Username="Muster", Password="Pass",Email="[email protected]",Bio="Musterbiografie", Pictures = pictures.Find(pic => pic.Name == "Testbild")} 
     }; 
    } 
} 

}

我嘗試構建一個API,目前我正在處理數據庫與代碼的連接。我正在按照這個教程:https://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-4

我的問題是,每當我嘗試添加圖片它將無法正常工作,因爲這種轉換錯誤。我怎樣才能避免這個問題,並實現圖片給用戶。 我的源代碼樹是這個樣子: Source Tree

用戶類看起來如下:

public class User 
{ 
    public int IdUser { get; set; } 
    public string Username { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
    public string Bio { get; set; } 
    public List<Pictures> Pictures { get; set; } 
    public List<Follow> Following { get; set; } 
    public List<Follow> Followed { get; set; } 
} 

的錯誤,我得到這個樣子的:

/用戶/用戶名/ vicotv,後端/vicoapi/vicoapi/Models/SampleData.cs(126,126):錯誤CS0029:不能隱式轉換類型'vicoapi.Pictures'到System.Collections.Generic.List'(CS0029)(vicoapi)

+0

顯示用戶類的定義。你的問題目前的格式不清楚 – Nkosi

+0

@Nkosi現在我已經添加了這個類。 –

+0

然後已經提供的答案解決了這個問題。 List.Find返回您試圖分配給列表的單個實例。這是什麼意圖?你想要一個集合或單個對象 – Nkosi

回答

1

雖然你沒有在這裏展示的課,我敢肯定,你的用戶類有一個屬性定義是這樣的:

public List<Pictures> Pictures { get; set; } 

如果是這樣的話,你需要的屬性分配給整個名單如下:

user.Pictures = pictures 

如果你希望用戶只能夠有一個圖片,那麼你需要定義User類的圖片屬性是這樣的:

public Pictures Picture { get; set; } 

如果您這樣定義Picture屬性,它應該與您當前的代碼一起使用。

P.S.我肯定會推薦將你的「圖片」類重命名爲「圖片」。一般來說,你應該使用單數形式來表示類名。有關更多信息,請看at this page

+0

現在我已經更新了我的圖片類,並且像你提議的那樣(公共圖片圖片{get; set;})。 Wehen我嘗試添加user.Picture另一個錯誤顯示。 我有同樣的錯誤,現在我已添加類,它是如何初始。但是現在我做了,就像你提議的那樣。 –

+0

編輯:現在它的工作原理,我犯了一個小錯誤,我忘記刪除圖片中的s。謝謝! –

+0

很高興我能幫到你。 –

相關問題