3

我在MVC 3應用程序中使用Entity Framework 4.1 code first無法將類型System.Data.Entity.DbSet轉換爲System.Collections.Generic.ICollection

我有以下的庫:

public class BankRepository : IBankRepository 
{ 
    HefContext db = new HefContext(); 

    public ICollection<Bank> GetAll() 
    { 
      return db.Banks; 
    } 
} 

返回db.Banks當我得到一個錯誤。我不知道這意味着什麼,有人可以幫助澄清,以及如何使錯誤消失改變呢?錯誤是:

Cannot implicitly convert type 'System.Data.Entity.DbSet<MyProject.Core.DomainObjects.Bank>' to 'System.Collections.Generic.ICollection<MyProject.Core.DomainObjects.Bank>'. An explicit conversion exists (are you missing a cast?) 

什麼是db.Banks回來了?一個IEnumerable?

回答

4

db.BanksDbSet類型。這個類不實現ICollection接口。更改方法的返回類型IQueryable<Bank>IEnumerable<Bank>

public class BankRepository : IBankRepository 
{ 
    HefContext db = new HefContext(); 

    public IQueryable<Bank> GetAll() 
    { 
      return db.Banks; 
    } 
} 
+0

大多數例子在線使用的ICollection的?爲什麼是這樣? –

+0

@Brendan情況必須是在這些例子不同,因爲您的代碼不編譯。 – Eranga

2

ICollection僅用作支持LazyLoading的支持屬性,而不是作爲方法的結果。檢查here

相關問題