SqlClient.SqlException:无效的对象名称

时间:2018-07-26 15:25:10

标签: c# entity-framework exception dbcontext

尝试保存更改时出现此异常:

  

System.Data.Entity.Infrastructure.DbUpdateException:发生错误   在更新条目时。有关详细信息,请参见内部异常。

     

---> System.Data.Entity.Core.UpdateException:发生错误   更新条目。有关详细信息,请参见内部异常。

     

---> System.Data.SqlClient.SqlException:无效的对象名称   'dbo.UserCacheModels'。

我已经阅读了很多类似的问题,并且在大多数情况下,问题出在未同步的数据库架构和DbContext中。 但是我认为我的情况有所不同,因为我没有这样的实体。 UserCacheModel只是DTO类之一,它没有附加到DbContext,当然,数据库中也没有这样的表。

我的DbContext非常大,因此我将显示简化版本:

public class PhotoContext : DbContext
{
    public PhotoContext(string connectionString)
        : base(connectionString)
    {
        Database.SetInitializer<PhotoContext>(null);
        ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
    }

    #region DataSets

    public IDbSet<VehicleLog> VehicleLogs { get; set; }
    public IDbSet<ActivityMarker> ActivityMarkers { get; set; }
    public IDbSet<Photo> Photos { get; set; }

    //other datasets, but there is NO IDbSet<UserCacheModel> UserCacheModels

    #endregion

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<VehicleLog>()
            .Property(x => x.UserId)
            .HasColumnName("User_Id");

        modelBuilder.Entity<VehicleLog>()
            .HasRequired(x => x.User)
            .WithMany(x => x.VehicleLogs)
            .HasForeignKey(x => x.UserId);

        modelBuilder.Entity<Photo>()
            .Property(x => x.WorkId)
            .HasColumnName("Work_Id");

        modelBuilder.Entity<Photo>()
            .HasOptional(x => x.Work)
            .WithMany(x => x.Photos)
            .HasForeignKey(x => x.WorkId);

       //other configuration
    }
}

任何想法怎么可能?

0 个答案:

没有答案