到处找教程之类的东西。
我一直试图将MVC5的旧通用存储库模式实现到一个新的MVC6项目中。
我设置了3个类库的.Core、.Data和.Service,但是IDBset有问题,似乎我的intellisense不喜欢它,我尝试添加System.Data和实体框架6,但是没有任何结果(无法找到it...confusing)。
在google上漫游之后,我决定在这里问一问,是否有一个有正确方法的教程,或者有人可以抛出一个非常简单的MVC6通用存储库模式?我有一种感觉,旧的方法做它可能已经改变,只是找不到任何其他信息,除了内置的DI。
代码:我的IDbContext接口
IDbSet<TEntity> Set<TEntity>() where TEntity : BaseEntity;没有看到IDbSet,这仅仅是因为实体框架?我确实有它的参考资料。
问题可能是我找不到实体框架的使用状态。
更新:
使用实体框架8.0.0 beta。将所有IDbset引用更改为DbSet。
但是,在我的通用存储库中,我使用了如下方法:
public virtual T GetById(object id)
{
return this.Entities.Find(id);
}“找到”不是一种方法。我再也不能在我的标语里使用"DbEntityValidationException“了。
发布于 2015-11-11 11:18:29
EntityFramework7Beta 8没有附带Find方法。它可能会在最终版本发布之前添加。
在此之前,您必须使用FirstOrDefault方法。
public virtual T GetById(int id)
{
return this.Entities.FirstOrDefault(x => x.Id == id);
}因为Id属性不会被识别,所以您必须添加一个接口并使您的存储库实现它。
public interface IEntity
{
int Id { get; set; }
}例如:
public class GenericRepository<T> : IGenericRepository<T> where T: class, IEntity来自github问题清单。EF7不执行自动数据验证,因此DbEntityValidationException不存在于EF7中。
注意: EF7不是EF的更新,而是重写。
https://stackoverflow.com/questions/33647984
复制相似问题