Я использую объект кода первые миграции и продолжает говорить мнеМой внешний ключ тип данных не совпадает
Column «dbo.Users.u_user_id» не тот же тип данных, как ссылки столбцов «PTEInteractiveCourses .ModifyUserId 'во внешнем ключе ' FK_dbo.PTEInteractiveCourses_dbo.Users_ModifyUserId '. Не удалось создать ограничение. См. Предыдущие ошибки.
Когда я пытаюсь обновить базу данных после создания миграции. Вот PTEInteractivieCourse:
namespace PTEManager.Domain
{
public class PTEInteractiveCourse
{
[Key]
public Guid PTEInteractiveCourseId { get; set; }
[ScaffoldColumn(false)]
[Required]
public DateTime ModifyDate { get; set; }
[ScaffoldColumn(false)]
[ForeignKey("ModifyUser")]
[Required]
public double ModifyUserId { get; set; }
public virtual OpsUser ModifyUser { get; set; }
[Display(Name = "Package")]
[ForeignKey("package_nme")]
[Required]
public int PackageId { get; set; }
public virtual Package package_nme { get; set; }
[ScaffoldColumn(false)]
[Display(Name = "")]
[Required]
public int Status { get; set; }
[Display(Name = "STCI Course")]
[ForeignKey("STCICourseName")]
[Required]
public Guid STCIProductInteractiveInfoID { get; set; }
public virtual STCIProductInteractiveInfo STCICourseName { get; set; }
}
}
и вот мой стол:
Вот мой пользователь модель только в случае, если:
namespace PTEManager.Domain
{
public partial class OpsUser
{
public double u_user_id { get; set; }
public Guid DepartmentID { get; set; }
public string email_addr { get; set; }
public string first_nme { get; set; }
public string last_nme { get; set; }
public Guid msrepl_tran_version { get; set; }
public string status { get; set; }
public string user_nme { get; set; }
public int u_branch_id { get; set; }
}
}
и карта пользователя:
namespace PTEManager.Domain.Mapping
{
class UserMap : EntityTypeConfiguration<OpsUser>
{
public UserMap()
{
// Primary Key
this.HasKey(t => t.u_user_id);
// Properties
this.Property(t => t.DepartmentID);
this.Property(t => t.email_addr)
.IsRequired()
.HasMaxLength(50);
this.Property(t => t.first_nme)
.IsRequired()
.HasMaxLength(30);
this.Property(t => t.last_nme)
.IsRequired()
.HasMaxLength(30);
this.Property(t => t.msrepl_tran_version)
.IsRequired();
this.Property(t => t.status)
.IsRequired()
.HasMaxLength(1);
this.Property(t => t.user_nme)
.IsRequired()
.HasMaxLength(15);
this.Property(t => t.u_branch_id)
.IsRequired();
// Table & Column Mappings
this.ToTable("Users");
this.Property(t => t.u_user_id).HasColumnName("u_user_id");
this.Property(t => t.DepartmentID).HasColumnName("DepartmentID");
this.Property(t => t.email_addr).HasColumnName("email_addr");
this.Property(t => t.first_nme).HasColumnName("first_nme");
this.Property(t => t.last_nme).HasColumnName("last_nme");
this.Property(t => t.msrepl_tran_version).HasColumnName("msrepl_tran_version");
this.Property(t => t.status).HasColumnName("status");
this.Property(t => t.user_nme).HasColumnName("user_nme");
this.Property(t => t.u_branch_id).HasColumnName("u_branch_id");
}
}
}
Если я читаю ваш код правильно, FK в 'OpsUser' является' double', и PK в вашей таблице является «числовым (10,0)». Это, безусловно, не тот же тип данных, следовательно, ваша ошибка. –
@MartinParkin, теперь я попробовал длинный, десятичный и int, и он тоже не работает. Нет числового типа в C# – djblois