尝试保存更改时出现此异常:
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
}
}
任何想法怎么可能?