我在Entity Framework 4.1 code first
应用中使用MVC 3
。
我有以下存储库:
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?
答案 0 :(得分:4)
db.Banks
的类型为DbSet。该类未实现ICollection
接口。将方法的返回类型更改为IQueryable<Bank>
或IEnumerable<Bank>
。
public class BankRepository : IBankRepository
{
HefContext db = new HefContext();
public IQueryable<Bank> GetAll()
{
return db.Banks;
}
}
答案 1 :(得分:2)
ICollection仅用作支持LazyLoading的支持属性,而不是作为方法的结果。检查here;)