Когда я делаю файл миграции в Azure .Net Backend, он автоматически генерирует пять обязательных полей (Id, CreatedAt, UpdAt, Version, Deleted) с моими полями клиента. Он определяет Id как первичный ключ.Изменение имени первичного ключа в EF6
public override void Up()
{
CreateTable(
"dbo.People",
c => new
{
Id = c.String(nullable: false, maxLength: 128,
annotations: new Dictionary<string, AnnotationValues>
{
{
"ServiceTableColumn",
new AnnotationValues(oldValue: null, newValue: "Id")
},
}),
PersonType = c.String(nullable: false, maxLength: 2),
FirstName = c.String(nullable: false, maxLength: 50),
MiddleName = c.String(maxLength: 50),
LastName = c.String(nullable: false, maxLength: 50),
Gender = c.String(nullable: false, maxLength: 1),
BirthDate = c.DateTime(nullable: false, storeType: "date"),
Version = c.Binary(nullable: false, fixedLength: true, timestamp: true, storeType: "rowversion",
annotations: new Dictionary<string, AnnotationValues>
{
{
"ServiceTableColumn",
new AnnotationValues(oldValue: null, newValue: "Version")
},
}),
CreatedAt = c.DateTimeOffset(nullable: false, precision: 7,
annotations: new Dictionary<string, AnnotationValues>
{
{
"ServiceTableColumn",
new AnnotationValues(oldValue: null, newValue: "CreatedAt")
},
}),
UpdatedAt = c.DateTimeOffset(precision: 7,
annotations: new Dictionary<string, AnnotationValues>
{
{
"ServiceTableColumn",
new AnnotationValues(oldValue: null, newValue: "UpdatedAt")
},
}),
Deleted = c.Boolean(nullable: false,
annotations: new Dictionary<string, AnnotationValues>
{
{
"ServiceTableColumn",
new AnnotationValues(oldValue: null, newValue: "Deleted")
},
}),
})
.PrimaryKey(t => t.Id)
.Index(t => t.CreatedAt, clustered: true);
}
Я хочу изменить этот первичный ключ имя «Id» в «PersonId», так что я добавить первичный ключ свойства, как показано ниже
public class Person : EntityData
{
public string PersonId;
....
}
Но это не сработало. «Id» не был заменен «PersonId» и просто добавлен в качестве поля клиента в файл миграции. Итак, добавлен атрибут [Key], но он сделал ошибку, и я получил следующее сообщение.
«Невозможно определить составной порядок первичного ключа для типа. Используйте метод ColumnAttribute или метод HasKey, чтобы указать порядок для составных первичных ключей».
Как я могу изменить имя первичного ключа?
Вы должны добавить код миграции вручную для переименованных столбцов. –