Использование Entity Framework Code Сначала CTP5, как мне создать столбец первичного ключа, который является INT и не является столбцами идентификаторов
Использование Entity Framework Code Сначала CTP5, как мне создать столбцы первичного ключа, которые являются INT и не являются столбцами идентификации
Предпочтительно не использовать атрибуты.
Ответы
Ответ 1
Если вы создаете свои объекты, используя свободный интерфейс, вместо использования атрибутов поверх свойств, вы можете использовать класс DatabaseGenerationOption (из EntityFramework.dll в пространстве имен System.ComponentModel.DataAnnotations). Я не тестировал его, но это было бы так:
modelBuilder
.Entity<Foo>()
.Property(f => f.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Ответ 2
Этот ответ не сработал у меня (в EF 4.1).
Чтобы сделать эту работу, я добавил атрибут DatabaseGenerated в свой ключевой столбец:
public class FacebookUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookId { get; set; }
// ...
}
Надеюсь, это поможет кому-то.
Ответ 3
Малое изменение
public class User
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
// Rest of the code
}