2013-03-20 3 views
0

У меня есть классы:Предельное один-ко-многим с Entity Framework

public class Game 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid ID { get; set; } 

    [InverseProperty("Game")] 
    public virtual ICollection<GameMember> Members { get; set; } 

    //... 
} 

public class GameMember 
{ 
    [Key] 
    [Column(Order = 0)] 
    public Guid GameID { get; set; } 

    [InverseProperty("Members")] 
    [ForeignKey("GameID")] 
    public virtual Game Game { get; set; } 

    [Key] 
    [Column(Order = 1)] 
    public Guid UserID { get; set; } 

    public virtual User User { get; set; } 

    //... 
} 

Как вы можете видеть, что я пытаюсь сделать простую игру. Пользователи могут присоединиться к игре (в этом случае будет создан новый GameMember) и добраться до лобби. Когда все готовы, игра начинается. Мне интересно, есть ли простой способ ограничить количество участников. Было бы здорово, если бы я мог применить некоторый атрибут, например [Max(4)], до ICollection<GameMember> Members.

ответ

2

Нет, это невозможно - в SQL нет эквивалентной конструкции.
Вам нужно будет создать четыре свойства, по одному на каждого члена.