2015-01-01 6 views
0

я пишу прямо в C# с Entity FrameworkВопросы о базе данных

Это мой код

public class User 
{ 
    [Key] 
    public long id { get; set; } 

    public List<UserMessages> userMessages { get; set; } 
} 

public class UserMessages 
{ 
     [Key] 
     public long Id { get; set; } 

     public long ChatMateId { get; set; } 
     public string text { get; set; } 
     public DateTime? dateTime { get; set; } 
} 

Entity Framework кода первым заставил меня поставить на Id поле UserMessages класса атрибута [Key], я дон «т нужно это поле вообще, потому что UserMessages слабый объект, который будет указывать на id из User

Могу ли я удалить long Id из таблицы SQL после эф созда e стол, без проблем?

ответ

0

Нет, вы не можете. EF требует, чтобы на всех столах было [Key], или оно взорвется. Даже при сопоставлении с представлениями SQL (как я научился, полагаю, что это трудно).

В вашем случае, вы должны быть фактически использование надлежащего внешнего ключа в этой таблице также, например, так:

public class UserMessages 
{ 
    [Key] 
    public long Id { get; set; } 

    [ForeignKey("User")] 
    public long UserId { get; set; } 

    public long ChatMateId { get; set; } 

    public string text { get; set; } 

    public DateTime? dateTime { get; set; } 

    public User User { get; set; } 
} 
+0

если я держать * длинный Id * его пределы моих UserMessages к размеру длинных – demi

+0

Сколько сообщения у вас есть в системе? 'long' имеет максимальное значение 9,223,372,036,854,775,807. – IronMan84

+0

Если в чате есть 1M пользователей, у каждого сообщения есть свой идентификатор, как я делаю * long Id * для ForeignKey и не имею 2 идентификаторов – demi

Смежные вопросы