Разрешение EF 4.1 автоматически создавать столбец идентификации - PullRequest
0 голосов
/ 18 ноября 2011

Предположим, у вас есть

public class A
{
   public string _myString;
}

И этот контекст:

public class MyContext: DbContext
{
    public DbSet<A> myASet{ get; set; }
}

Теперь, есть ли способ сообщить EF сгенерировать столбец идентификации для myASet?

Я не хочу добавлять поле ID в class A, поэтому мне интересно, может ли EF сделать это. Большое спасибо,

Юрген

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Вы должны добавить столбец идентификатора в свой класс, если хотите, чтобы он был в базе данных.Также в EF каждый объект должен иметь сопоставленный первичный ключ.

1 голос
/ 18 ноября 2011

Если у вас есть сущность с именем Product и свойство ProductId, EF автоматически добавит столбец идентификаторов при поиске имени и идентификатора сущности по соглашению.

Вы можете использовать столбец, который не соответствует соглашению, добавив атрибут [key] над желаемым свойством.

В приведенном ниже примере. Для ProductId будет создан столбец идентификаторов.

 public class Product 
 { 
    public int ProductId { get; set; } 
    public string Name { get; set; } 
    public string CategoryId { get; set; } 
    public virtual Category Category { get; set; } 
 } 

В этом примере столбец «MyId» будет создан как личность.

 public class Product 
 { 
    [key]
    public int MyId { get; set; } 
    public string Name { get; set; } 
    public string CategoryId { get; set; } 
    public virtual Category Category { get; set; } 
 }
1 голос
/ 18 ноября 2011

EF будет использовать только те столбцы, которые фактически есть в ваших модельных классах, поэтому вы должны поместить все те, которые вам нужны, в себя.Сюда входят столбцы идентификаторов для первичных ключей.

...