La Création De Clé Composite Entity Framework

Peu de temps, je veux créer des clés composites sur ma table, en restant avec la clé primaire dans le but d'améliorer sql server recherche de la performance. Le problème se produit sur 200k table de données à chaque fois que je recherche une entité sans clé primaire (j'.e une chaîne de GUID). Supposons que j'ai 3 classes

public class Device{

    public int ID { get; set; } 
    public string UDID { get; set; }
    public string ApplicationKey { get; set; }
    public string PlatformKey { get; set; }

    public ICollection<NotificationMessageDevice> DeviceMessages { get; set; } 
}

public class NotificationMessageDevice { 

    [Column(Order = 0), Key, ForeignKey("NotificationMessage")]
    public int NotificationMessage_ID { get; set; }

    [Column(Order = 1), Key, ForeignKey("Device")]
    public int Device_ID { get; set; }

    public virtual Device Device { get; set; }
    public virtual NotificationMessage NotificationMessage { get; set; }
}

public class NotificationMessage { 

    public int ID { get; set; }
    public string Text { get; set; }
    public DateTime CreateDate { get; set; }
}

        modelBuilder.Entity<Device>().HasKey(t => new { t.ID, t.ApplicationKey, t.PlatformKey, t.UDID });

Ce que le problème est qu'à chaque fois que je veux faire de l'ID , UDID , ApplicationKey et PlatformKey définir comme une Clé Composite avec modelBuilder il donne l'erreur suivante.

NotificationMessageDevice_Device_target_notificationmessagedevice_device_source:
: Le nombre de propriétés dans le Dépendantes et des Rôles Principaux dans un
relation de contrainte doit être identique

Je pense que le problème est dû à la propriété de navigation sur NotificationMessageDevice n'est pas en mesure de reconnaître ce que la clé primaire est sur l'Appareil de table. Comment puis-je résoudre ce problème? En plus de cela, je serai content si vous partager vos expériences pour améliorer les performances de recherche sur Entity framework. Habituellement, le problème de performances se produit à chaque fois que j'utilise la Première méthode, sans les clés primaires.

  • Je ne suis pas beaucoup pour EF développement, mais vous n'avez pas le ForeignKeyAttribute sur la mauvaise chose?
  • Nop c'est bon 🙂
InformationsquelleAutor kkocabiyik | 2013-02-14