我的代码没有更新数据库 [英] My code is not update the database

查看:46
本文介绍了我的代码没有更新数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

错误号码:2705,状态:4,类:16

每个表中的列名必须是唯一的。表'dbo.Enrollments'中的列名'IsActive'被多次指定。





l尝试更新数据库并获得错误下面





删除了所有视图和ASP.NET代码,因为它与错误无关。 />


模型为

Error Number:2705,State:4,Class:16
Column names in each table must be unique. Column name 'IsActive' in table 'dbo.Enrollments' is specified more than once.


l try to update- databas and l got error below


Removed all the view and ASP.NET code as it has nothing to do with the error.

the models as

namespace StudentEnrollment.Models
{
public class Course
{

[Display(Name = "Course ID")]
public virtual int Id { get; set; }

  
[Display(Name = "Course Title")]
[Required(ErrorMessage = "Enter Title for course")]
[MaxLength(50, ErrorMessage = "Allowable max is 150")]
public virtual string Title { get; set; }

  
[Display(Name = "Description")]
public virtual string Description { get; set; }

  
[Display(Name = "Number of Credits")]
[Required(ErrorMessage = "Enter credits for course")]
[RegularExpression("^[1-4]{1}$", ErrorMessage = "Enter value either 1,2 or 3,4")]
public virtual string Credits { get; set; }
  
}
}

namespace StudentEnrollment.Models
{
public class Enrollment
{
public virtual int Id { get; set; }

[Display(Name = "Student ID")]
public virtual int StudentId { get; set; }
public Student Student { get; set; }

[Display(Name = "Course ID")]
public virtual int CourseId { get; set; }

public Course Course { get; set; }

[Display(Name = "Grade")]
[RegularExpression("^[A-F]{1}$", ErrorMessage = "Enter value A , B, C, D, E, F")]
public virtual string Grade { get; set; }
public bool IsActive { get; set; }

[Display(Name = "Assigned Campus")]
[Required(ErrorMessage = "Enter value for campus")]
public virtual string AssignedCampus { get; set; }

  
[Display(Name = "Enrolled in Semester")]
[Required(ErrorMessage = "Enter enrollment semester")]
public virtual string EnrollmentSemester { get; set; }


[Display(Name = "Enrollment Year")]  
[Required(ErrorMessage = "Enter value for Enrollment Year ")]
[Range(2018,2020, ErrorMessage = "Enter value greater than 2018")]
public virtual int EnrollmentYear { get; set; }
public virtual String Notes { get; set; }
}
}

namespace StudentEnrollment.Models
{
public class Student
{
[Display(Name = "Student ID")]
public virtual int Id { get; set; }

[Display(Name = "Last Name")]
[Required(ErrorMessage = "Enter value for Last Name")]
[MaxLength(50, ErrorMessage = "Allowable max is 50")]
public virtual string LastName { get; set; }


[Display(Name = "First Name")]
[Required(ErrorMessage = "Enter value for First Name")]
[MaxLength(50, ErrorMessage = "Allowable max length is 50")]
public virtual string FirstName { get; set; }
}
}



在系统中仍有AN错误



。 Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)ClientConnectionId:5f388873-4c88-4dfa-96ec-5412a7dfdcce错误号:2705,状态:4,类:每个表中的16个列名必须是唯一的。表dbo中的列名IsActive。注册多次指定。 PM>



表中是否有soltion作为查询来解决问题????



这是enrollemnt查询


there is still AN error

at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) ClientConnectionId:5f388873-4c88-4dfa-96ec-5412a7dfdcce Error Number:2705, State:4,Class:16 olumn names in each table must be unique. Column name IsActive in table dbo. Enrollments is specified more than once. PM>

Is there is soltion as query inside the table to solve the issues????

this is the enrollemnt query

CREATE TABLE [dbo].[Enrollments] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[StudentId] INT NOT NULL,
[CourseId] INT NOT NULL,
[Grade] NVARCHAR (MAX) NULL,
[IsActive] BIT NULL,
[AssignedCampus] VARCHAR (MAX) NULL,
[EnrollmentSemester] VARCHAR (MAX) NULL,
[EnrollmentYear] INT NULL,
CONSTRAINT [PK_dbo.Enrollments] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.Enrollments_dbo.Courses_CourseId] FOREIGN KEY ([CourseId]) REFERENCES [dbo].[Courses] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.Enrollments_dbo.Students_StudentId] FOREIGN KEY ([StudentId]) REFERENCES [dbo].[Students] ([Id]) ON DELETE CASCADE
);


GO
CREATE NONCLUSTERED INDEX [IX_StudentId]
ON [dbo].[Enrollments]([StudentId] ASC);


GO
CREATE NONCLUSTERED INDEX [IX_CourseId]
ON [dbo].[Enrollments]([CourseId] ASC);



显示转录的图像文本



我尝试了什么:



l使用Visual Studio 2017尝试更新数据库但是它继续生成相同的错误活动是多个并且Notes列无效

这个错误消息

错误号码:2705,状态:4,类:16

每个表中的列名必须是唯一的。表'dbo.Enrollments'中的列名'IsActive'被多次指定。

PM>


Show transcribed image text

What I have tried:

l did try update-database using visual studio 2017 but it keep generating the same error Is active is more than one and also Notes column is not valid
this the error message
Error Number:2705,State:4,Class:16
Column names in each table must be unique. Column name 'IsActive' in table 'dbo.Enrollments' is specified more than once.
PM>

推荐答案

,ErrorMessage = 输入值1,2或3,4)]
< span class =code-keyword> public virtual string Credits { get ; set ;}

}
}

命名空间 StudentEnrollment.Models
{
public 注册
{
public virtual int ID { get ; set ;}

[显示(名称= 学生ID)]
public virtual int StudentId { get ; set ; }
public 学生{获取; set ; }

[显示(名称= 课程ID)]
public virtual int CourseId {< span class =code-keyword> get ; set ; }

public 课程课程{ get ; set ; }

[显示(名称= 等级)]
[RegularExpression( ^ [AF] {1}
", ErrorMessage = "Enter value either 1,2 or 3,4")] public virtual string Credits { get; set; } } } namespace StudentEnrollment.Models { public class Enrollment { public virtual int Id { get; set; } [Display(Name = "Student ID")] public virtual int StudentId { get; set; } public Student Student { get; set; } [Display(Name = "Course ID")] public virtual int CourseId { get; set; } public Course Course { get; set; } [Display(Name = "Grade")] [RegularExpression("^[A-F]{1}


,ErrorMessage = 输入值A,B,C,D,E,F)]
public virtual string 成绩{获取; set ; }
public bool IsActive { get ; set ; }

[显示(名称= 指定校园)]
[必需(ErrorMessage = 输入校园值)]
public virtual string AssignedCampus {获得; set ; }


[显示(名称= 注册于学期)]
[必需(ErrorMessage = 输入注册学期)]
public virtual string EnrollmentSemester {获得; set ; }


[显示(名称= 注册年份 )]
[必需(ErrorMessage = 输入注册年份的值)]
[范围( 2018 2020 ,ErrorMessage = 输入值大于2018)]
public virtual int EnrollmentYear { get ; set ; }
public virtual String Notes { get ; set ; }
}
}

命名空间 StudentEnrollment.Models
{
public class 学生
{
[显示(名称= 学生ID)]
public virtual int Id { get ; set ; }

[显示(名称= 姓氏)]
[必需(ErrorMessage = 为姓氏输入值)]
[MaxLength ( 50 ,ErrorMessage = 允许的最大值为50)]
public virtual string LastName { get ; set ; }


[显示(名称= 名字 )]
[必需(ErrorMessage = 输入名字)]
[MaxLength( 50 ,ErrorMessage = 允许的最大值长度为50)]
public virtual string FirstName { get ; set ; }
}
}
", ErrorMessage = "Enter value A , B, C, D, E, F")] public virtual string Grade { get; set; } public bool IsActive { get; set; } [Display(Name = "Assigned Campus")] [Required(ErrorMessage = "Enter value for campus")] public virtual string AssignedCampus { get; set; } [Display(Name = "Enrolled in Semester")] [Required(ErrorMessage = "Enter enrollment semester")] public virtual string EnrollmentSemester { get; set; } [Display(Name = "Enrollment Year")] [Required(ErrorMessage = "Enter value for Enrollment Year ")] [Range(2018,2020, ErrorMessage = "Enter value greater than 2018")] public virtual int EnrollmentYear { get; set; } public virtual String Notes { get; set; } } } namespace StudentEnrollment.Models { public class Student { [Display(Name = "Student ID")] public virtual int Id { get; set; } [Display(Name = "Last Name")] [Required(ErrorMessage = "Enter value for Last Name")] [MaxLength(50, ErrorMessage = "Allowable max is 50")] public virtual string LastName { get; set; } [Display(Name = "First Name")] [Required(ErrorMessage = "Enter value for First Name")] [MaxLength(50, ErrorMessage = "Allowable max length is 50")] public virtual string FirstName { get; set; } } }



在系统中仍有AN错误



。 Data.Entity.Migrations.MigrationsDomainCommand.Execute(操作命令)ClientConnectionId:5f388873-4c88-4dfa-96ec-5412a7dfdcce错误号:2705,状态:4,类:每个表中的16个列名必须是唯一的。表dbo中的列名IsActive。注册多次指定。 PM>



表中是否有soltion作为查询来解决问题????



这是enrollemnt查询


there is still AN error

at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) ClientConnectionId:5f388873-4c88-4dfa-96ec-5412a7dfdcce Error Number:2705, State:4,Class:16 olumn names in each table must be unique. Column name IsActive in table dbo. Enrollments is specified more than once. PM>

Is there is soltion as query inside the table to solve the issues????

this is the enrollemnt query

CREATE TABLE [dbo].[Enrollments] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[StudentId] INT NOT NULL,
[CourseId] INT NOT NULL,
[Grade] NVARCHAR (MAX) NULL,
[IsActive] BIT NULL,
[AssignedCampus] VARCHAR (MAX) NULL,
[EnrollmentSemester] VARCHAR (MAX) NULL,
[EnrollmentYear] INT NULL,
CONSTRAINT [PK_dbo.Enrollments] PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_dbo.Enrollments_dbo.Courses_CourseId] FOREIGN KEY ([CourseId]) REFERENCES [dbo].[Courses] ([Id]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.Enrollments_dbo.Students_StudentId] FOREIGN KEY ([StudentId]) REFERENCES [dbo].[Students] ([Id]) ON DELETE CASCADE
);


GO
CREATE NONCLUSTERED INDEX [IX_StudentId]
ON [dbo].[Enrollments]([StudentId] ASC);


GO
CREATE NONCLUSTERED INDEX [IX_CourseId]
ON [dbo].[Enrollments]([CourseId] ASC);



显示转录的图像文本



我尝试了什么:



l使用Visual Studio 2017尝试更新数据库但是它继续生成相同的错误活动是多个并且Notes列无效

这个错误消息

错误号码:2705,状态:4,类:16

每个表中的列名必须是唯一的。表'dbo.Enrollments'中的列名'IsActive'被多次指定。

PM>


Show transcribed image text

What I have tried:

l did try update-database using visual studio 2017 but it keep generating the same error Is active is more than one and also Notes column is not valid
this the error message
Error Number:2705,State:4,Class:16
Column names in each table must be unique. Column name 'IsActive' in table 'dbo.Enrollments' is specified more than once.
PM>


问题出在您的数据库模型中



为清晰起见,我删除了所有属性



在您的学生模型中,全部你的领域是虚拟的。那很糟。它们不应该是因为它们不是与其他表中的其他字段相关的字段。您的学生班级应该更接近这个:

The problems are with your database Models

I removed all of the attributes for clarity

In your Student model, all of your fields are virtual. That's bad. They shouldn't be because they are not field relating with other fields in other tables. Your Student class should be closer to this:
namespace StudentEnrollment.Models
{
	public class Student
	{
		public int StudentId { get; set; }
		public string LastName { get; set; }
		public string FirstName { get; set; }
	}
}





您的课程模型存在同样的问题。一切都是虚拟的,不应该是。



Your Course model has the same problems. Everything is virtual when it shouldn't be.

namespace StudentEnrollment.Models
{
	public class Course
	{
		public int CourseId { get; set; }
		public string Title { get; set; }
		public string Description { get; set; }
		public string Credits { get; set; }
	}
}





现在,您的注册模型也有类似的问题。虚拟的一切都不应该是,而非虚拟的东西应该是!另外,您不需要StudentId和CourseID字段。这些将由EF生成../ $>



Now, your Enrollment model has a similar problem. Everything that is virtual shouldn't be and the stuff that isn't virtual should be! Plus, you don't need the StudentId and CourseID fields. Those will be generated by EF as appropriate.

namespace StudentEnrollment.Models
{
	public class Enrollment
	{
		public int EnrollmentId { get; set; }
		public string Grade { get; set; }
		public bool IsActive { get; set; }
		public string AssignedCampus { get; set; }
		public string EnrollmentSemester { get; set; }
		public int EnrollmentYear { get; set; }
		public String Notes { get; set; }

		public virtual Student Student { get; set; }
		public virtual Course Course { get; set; }
	}
}


这篇关于我的代码没有更新数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆