Ich habe ASP.NET Core 1.0 RTM-Projekt auf net461-Framework unter Verwendung der Klassenbibliothek 4.6.1, die Klassenbibliothek verfügt über Datenzugriffs-Repositories mit EF 6.1.Ungültiger Spaltenname 'User_User_Id'. Ungültiger Spaltenname 'Group_Group_Id'. EF6 Exception
Ich erhalte folgende Fehler: Ungültiger Spaltenname 'User_User_Id'. Ungültiger Spaltenname 'Group_Group_Id'.
Wenn rufen Sie die folgenden Repository-Code:
public ReviewWorkflow GetWorkflowWithActors(int reviewWorkflowId)
{
return DbContext.ReviewWorkflows.Include(a => a.ReviewWorkflowActors).Where(r => r.ReviewWorkflow_Id == reviewWorkflowId).FirstOrDefault();
}
Entities
public partial class ReviewWorkflow
{
public ReviewWorkflow()
{
this.ReviewWorkflowActors = new List<ReviewWorkflowActor>();
this.ReviewWorkflowsProjects = new List<ReviewWorkflowsProject>();
}
public int ReviewWorkflow_Id { get; set; }
public string Name { get; set; }
public string CreatedBy { get; set; }
public System.DateTime CreatedDate { get; set; }
public string UpdateBy { get; set; }
public Nullable<System.DateTime> UpdatedDate { get; set; }
public byte[] RowVersion { get; set; }
public int Owner_UserId { get; set; }
public User User { get; set; }
public ICollection<ReviewWorkflowActor> ReviewWorkflowActors { get; set; }
public ICollection<ReviewWorkflowsProject> ReviewWorkflowsProjects { get; set; }
public ReviewWorkflowView TransformToReviewWorkflowView()
{
return new ReviewWorkflowView()
{
Name = this.Name,
ReviewWorkflowActors = this.ReviewWorkflowActors.Select(r => r.TransformToReviewWorkflowActor()).ToList()
};
}
}
public partial class ReviewWorkflowActor
{
public int ReviewWorkflowActor_Id { get; set; }
public int ReviewWorkflow_Id { get; set; }
public byte SequenceNo { get; set; }
public Nullable<int> Group_Id { get; set; }
public Nullable<int> User_Id { get; set; }
public string CreatedBy { get; set; }
public System.DateTime CreatedDate { get; set; }
public string UpdateBy { get; set; }
public Nullable<System.DateTime> UpdatedDate { get; set; }
public byte[] RowVersion { get; set; }
public ReviewWorkflow ReviewWorkflow { get; set; }
public ReviewWorkflowActorView TransformToReviewWorkflowActor()
{
return new ReviewWorkflowActorView() {
Group_Id = this.Group_Id,
SequenceNo = this.SequenceNo,
User_Id = this.User_Id
};
}
}
Karte:
public class ReviewWorkflowMap : EntityTypeConfiguration<ReviewWorkflow>
{
public ReviewWorkflowMap()
{
// Primary Key
this.HasKey(t => t.ReviewWorkflow_Id);
// Properties
this.Property(t => t.Name)
.IsRequired()
.HasMaxLength(1000);
this.Property(t => t.CreatedBy)
.IsRequired()
.HasMaxLength(50);
this.Property(t => t.UpdateBy)
.HasMaxLength(50);
this.Property(t => t.RowVersion)
.IsRequired()
.IsFixedLength()
.HasMaxLength(8)
.IsRowVersion();
// Table & Column Mappings
this.ToTable("ReviewWorkflows", "Weekly");
this.Property(t => t.ReviewWorkflow_Id).HasColumnName("ReviewWorkflow_Id");
this.Property(t => t.Name).HasColumnName("Name");
this.Property(t => t.CreatedBy).HasColumnName("CreatedBy");
this.Property(t => t.CreatedDate).HasColumnName("CreatedDate");
this.Property(t => t.UpdateBy).HasColumnName("UpdateBy");
this.Property(t => t.UpdatedDate).HasColumnName("UpdatedDate");
this.Property(t => t.RowVersion).HasColumnName("RowVersion");
this.Property(t => t.Owner_UserId).HasColumnName("Owner_UserId");
// Relationships
this.HasRequired(t => t.User)
.WithMany(t => t.ReviewWorkflows)
.HasForeignKey(d => d.Owner_UserId);
}
}
public class ReviewWorkflowActorMap : EntityTypeConfiguration<ReviewWorkflowActor>
{
public ReviewWorkflowActorMap()
{
// Primary Key
this.HasKey(t => t.ReviewWorkflowActor_Id);
// Properties
this.Property(t => t.CreatedBy)
.IsRequired()
.HasMaxLength(50);
this.Property(t => t.UpdateBy)
.HasMaxLength(50);
this.Property(t => t.RowVersion)
.IsRequired()
.IsFixedLength()
.HasMaxLength(8)
.IsRowVersion();
// Table & Column Mappings
this.ToTable("ReviewWorkflowActors", "Weekly");
this.Property(t => t.ReviewWorkflowActor_Id).HasColumnName("ReviewWorkflowActor_Id");
this.Property(t => t.ReviewWorkflow_Id).HasColumnName("ReviewWorkflow_Id");
this.Property(t => t.SequenceNo).HasColumnName("SequenceNo");
this.Property(t => t.Group_Id).HasColumnName("Group_Id");
this.Property(t => t.User_Id).HasColumnName("User_Id");
this.Property(t => t.CreatedBy).HasColumnName("CreatedBy");
this.Property(t => t.CreatedDate).HasColumnName("CreatedDate");
this.Property(t => t.UpdateBy).HasColumnName("UpdateBy");
this.Property(t => t.UpdatedDate).HasColumnName("UpdatedDate");
this.Property(t => t.RowVersion).HasColumnName("RowVersion");
// Relationships
this.HasRequired(t => t.ReviewWorkflow)
.WithMany(t => t.ReviewWorkflowActors)
.HasForeignKey(d => d.ReviewWorkflow_Id);
}
}
Andere:
[DbConfigurationType(typeof(EFDbConfiguration))]
public class EWRSContext : DbContext
{
public EWRSContext()
: base(_connectionString)
{
this.Configuration.LazyLoadingEnabled = false;
}
public DbSet<Murad> Muradies { get; set; }
public DbSet<PositionHierarchy> PositionHierarchy { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<OrganizationHierarchy> OrganizationHierarchy { get; set; }
public DbSet<Delegation> Delegations { get; set; }
public DbSet<GroupPermission> GroupPermissions { get; set; }
public DbSet<Group> Groups { get; set; }
public DbSet<GroupUser> GroupUsers { get; set; }
public DbSet<Permission> Permissions { get; set; }
public DbSet<Configuration> Configurations { get; set; }
public DbSet<Notification> Notifications { get; set; }
public DbSet<NotificationsUser> NotificationsUsers { get; set; }
public DbSet<Project> Projects { get; set; }
public DbSet<ProjectStatus> ProjectStatuses { get; set; }
public DbSet<ReviewWorkflowInstance> ReviewWorkflowInstances { get; set; }
public DbSet<ReviewWorkflow> ReviewWorkflows { get; set; }
public DbSet<ReviewWorkflowsProject> ReviewWorkflowsProjects { get; set; }
public DbSet<Subject> Subjects { get; set; }
public DbSet<SubjectStatus> SubjectStatuses { get; set; }
public DbSet<TeamModel> TeamModels { get; set; }
public DbSet<TeamModelSubject> TeamModelSubjects { get; set; }
public DbSet<Template> Templates { get; set; }
public DbSet<WeeklyInput> WeeklyInputs { get; set; }
public DbSet<WeeklyInputHistory> WeeklyInputHistories { get; set; }
public DbSet<BusinessUnitesView> BusinessUnitesViews { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//Murad :: Fluent API configuration goes here
modelBuilder.Configurations.Add(new PositionHierarchyMap());
modelBuilder.Configurations.Add(new UserMap());
modelBuilder.Configurations.Add(new OrganizationHierarchyMap());
modelBuilder.Configurations.Add(new DelegationMap());
modelBuilder.Configurations.Add(new GroupPermissionMap());
modelBuilder.Configurations.Add(new GroupMap());
modelBuilder.Configurations.Add(new GroupUserMap());
modelBuilder.Configurations.Add(new PermissionMap());
modelBuilder.Configurations.Add(new ConfigurationMap());
modelBuilder.Configurations.Add(new NotificationMap());
modelBuilder.Configurations.Add(new NotificationsUserMap());
modelBuilder.Configurations.Add(new ProjectMap());
modelBuilder.Configurations.Add(new ProjectStatusMap());
modelBuilder.Configurations.Add(new ReviewWorkflowInstanceMap());
modelBuilder.Configurations.Add(new ReviewWorkflowMap());
modelBuilder.Configurations.Add(new ReviewWorkflowsProjectMap());
modelBuilder.Configurations.Add(new SubjectMap());
modelBuilder.Configurations.Add(new SubjectStatusMap());
modelBuilder.Configurations.Add(new TeamModelMap());
modelBuilder.Configurations.Add(new TeamModelSubjectMap());
modelBuilder.Configurations.Add(new TemplateMap());
modelBuilder.Configurations.Add(new WeeklyInputMap());
modelBuilder.Configurations.Add(new WeeklyInputHistoryMap());
modelBuilder.Configurations.Add(new BusinessUnitesViewMap());
modelBuilder.Configurations.Add(new MuradConfigurationMap());
modelBuilder.Configurations.Add(new ReviewWorkflowActorMap());
}
//Add Db Custom validation Errors
protected override DbEntityValidationResult ValidateEntity(DbEntityEntry entityEntry, IDictionary<object, object> items)
{
//validate Project Data Insertion
if (entityEntry.Entity is Project && (entityEntry.State == EntityState.Added || entityEntry.State == EntityState.Modified))
{
var dbErrors = new ProjectValidator().Validate(entityEntry);
if (dbErrors != null)
return dbErrors;
}
return base.ValidateEntity(entityEntry, items);
}
}
Ich glaube, dass Sie eine ShadowProperty treffen und da Sie 2 Eigenschaften als 'Nullable 'haben, die sich auf die jeweiligen Typen beziehen, glaube ich, dass EFC sagt, wo sie auf dem Tisch sind, weil es denkt, dass sie da sein sollen. Haben Sie versucht, die DbContext-Erstellungstools von Ihrer vorhandenen DB mit EFC zu verwenden? Package Manager Console Befehle haben sie https://docs.efproject.net/en/latest/miscellaneous/cli/powershell.html#scaffold-dbcontext –
mvermef
Denken Sie daran, keine faulen oder expliziten Laden, so dass es auch andere Sachen, die so notwendig sind fehlt Include/ThenInclude (möglicherweise erforderlich). – mvermef
Es tut mir leid, ich bin neu in EF6, ich habe keinen Schatten Eigenschaft, ich habe ef Power Tool für VS 2015 (nach der Änderung), um meinen Kontext zu generieren. –