Не удается преобразовать тип System.Data.Entity.DbSet в System.Collections.Generic.ICollection - PullRequest
3 голосов
/ 10 ноября 2011

Я использую Entity Framework 4.1 code first в приложении MVC 3.

У меня есть следующий репозиторий:

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

     public ICollection<Bank> GetAll()
     {
          return 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?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2011

db.Banks имеет тип DbSet . Этот класс не реализует интерфейс ICollection. Измените тип возвращаемого значения метода на IQueryable<Bank> или IEnumerable<Bank>.

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

     public IQueryable<Bank> GetAll()
     {
          return db.Banks;
     }
}
2 голосов
/ 26 ноября 2011

ICollection используется только как свойство поддержки для поддержки LazyLoading, а не как результат метода.Отметьте здесь ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...