通用存储库,CreateObjectSet ()方法

我试图实现一个通用的存储库,我现在就有这个:

using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Data.Entity.Core.Objects; using Web_API.Models; namespace Web_API.DAL { class GenericRepository : IRepository where T : class { private ApplicationDbContext entities = null; IObjectSet _objectSet; public GenericRepository(ApplicationDbContext _entities) { entities = _entities; _objectSet = entities.CreateObjectSet(); } ... 

我在使用此方法调用时遇到问题: entities.CreateObjectSet(); 它应该没问题,但我得到这个错误:

在此处输入图像描述

我已经将System.Data.Entity添加到我的项目中,此时我不知道还能做什么。 我正在关注本教程http://www.codeproject.com/Articles/770156/Understanding-Repository-and-Unit-of-Work-Pattern 。 有谁知道如何解决这个问题?

您需要将方法更改为如下所示:

 public GenericRepository(ApplicationDbContext _entities) { entities = _entities; _objectSet = entities.Set(); //This line changed. } 

这应该具有您想要的function。 .Set()是返回所用类型的DbSet的generics方法。

更新:

随着返回类型的更改,您还需要更改_objectSet类型。

 DbSet _objectSet;