【问题标题】:The type or namespace name 'DbEntityEntry<TEntity>' could not be found找不到类型或命名空间名称“DbEntityEntry<TEntity>”
【发布时间】:2016-04-04 17:03:09
【问题描述】:

我有以下在 EF7 之前使用的接口。当我尝试使用 EF7 构建应用程序时,我收到以下错误,我似乎无法在任何地方找到这种类型。我非常感谢您关于如何更改 EF7 代码的建议。

错误 CS0246 找不到类型或命名空间名称“DbEntityEntry”(您是否缺少 using 指令或程序集引用?)

public interface IContext
{
    DbSet<Client> Clients { get; set; }
    DbSet<TEntity> Set<TEntity>() where TEntity : class;

    DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;

    int SaveChanges();
}

【问题讨论】:

    标签: c# entity-framework-core


    【解决方案1】:

    Entity Framework 7 中没有 DbEntityEntry 类型。整个底层更改跟踪实现已更改,并且没有精确的复制。

    在新的 Microsoft.Data.Entity.ChangeTracking 命名空间中有一个 EntityEntry 类型,它具有相似的目的,但它的工作方式略有不同,因为它与早期版本的 Entity Framework 中的 DbEntityEntry 类型不兼容。

    您可以通过ChangeTracker 访问它,该地址可通过DbContext.ChangeTracker 访问。

    但至于保留该界面,这不太可能对您有所帮助,因为很多事情已经发生了变化。

    【讨论】:

    • 感谢您的快速回复。我将深入研究 EF7 文档,看看我需要修改什么。祝您假期愉快,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2011-05-13
    • 2013-03-25
    • 2012-06-19
    • 2017-11-29
    • 2012-09-27
    • 2011-05-06
    相关资源
    最近更新 更多