IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Pbm de ForeignKey


Sujet :

Entity Framework

  1. #1
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut Pbm de ForeignKey
    Bonjour,
    J'ai l'entité suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    public class AttachmentFile : BaseModels
        {
     
            [Required]
            public Guid RelayId { get; set; }
     
     
            [Required, StringLength(50), Display(Name = "Nom du fichier", Description = "Nom du fichier avec extention")]
            public string FileName { get; set; }
     
     
            [Display(Name = "Type de fichier")]
            public DocumentType Type { get; set; }
     
     
            [NotMapped, Display(Name = "Type de justificatif")]
            public string TypeAsString {
                get { return Type.ToDescString(); }
            }
     
            #region Navigation properties
            [Display(Name = "Voisin Relais")]
            public virtual Person Relay { get; set; }
            #endregion
        }
    qui réfèrent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     public class Person : BaseModels
        {
            public enum Civilities { M = 1, Mme, Mlle }
     
            [ForeignKey("User")]
            public string UserId { get; set; }
     
            [Required, Display(Name = "Nom"), StringLength(50)]
            public string Lastname { get; set; }
     
            [Required, Display(Name = "Prénom"), StringLength(50)]
            public string Firstname { get; set; }
     
            [NotMapped, Display(Name = "Nom complet")]
            public string Fullname
            {
                get
                {
                    var myTI = new System.Globalization.CultureInfo("fr-FR", false).TextInfo;
                    return string.Format("{0} {1}", Lastname.ToUpper(), myTI.ToTitleCase(Firstname));
                }
            }
     
            [Required, Display(Name = "Civilités")]
            public Civilities Civility { get; set; }
     
            [Display(Name = "Voisin relais actif")]
            public bool IsActivRelay { get; set; }
     
            [Display(Name = "Votre photographie")]
            public string PhotoPath { get; set; }
     
            #region Navigation properties
            public virtual ApplicationUser User { get; set; }
     
            [Display(Name = "Adresses")]
            public virtual ICollection<Address> Addresses { get; set; }
     
            [Display(Name = "Téléphones")]
            public virtual ICollection<PhoneNumber> Phones { get; set; }
     
            [Display(Name = "Justificatifs")]
            public virtual ICollection<AttachmentFile> Supportings { get; set; }
     
            public virtual ICollection<CustomerRelay> Customers { get; set; }
     
            public virtual ICollection<CustomerRelay> Relays { get; set; }
     
            public virtual ICollection<AttachmentFile> Files { get; set; }
     
            public virtual ICollection<Availability> Availabilities { get; set; }
            #endregion
        }
    BaseModels contient une Prop Id (Guid).

    J'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     modelBuilder.Entity<AttachmentFile>()
                    .HasRequired(f => f.Relay)
                    .WithMany(p => p.Files);
    dans mon DbContext (on create...)

    et j'obtiens ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CreateTable(
                    "dbo.AttachmentFile",
                    c => new
                        {
                            Id = c.Guid(nullable: false, identity: true),
                            RelayId = c.Guid(nullable: false),
                            FileName = c.String(nullable: false, maxLength: 50),
                            Type = c.Int(nullable: false),
                            Person_Id = c.Guid(),
                        })
                    .PrimaryKey(t => t.Id)
                    .ForeignKey("dbo.Person", t => t.RelayId, cascadeDelete: true)
                    .ForeignKey("dbo.Person", t => t.Person_Id)
                    .Index(t => t.RelayId)
                    .Index(t => t.Person_Id);
    sans le fluentAPI, ça me fait un Person_Id1 en plus

    please Help
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  2. #2
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Personne n'a une idée ?
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  3. #3
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    ce problème est toujours d'actualité...
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit pbm allocation dynamique de stringGrid
    Par AnneOlga dans le forum C++Builder
    Réponses: 10
    Dernier message: 17/01/2004, 11h59
  2. [nouveau]installation compilateur borland c++ et pbm paramét
    Par marc olivier dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 17/11/2003, 09h57
  3. [ PostgreSQL ] Pbm migration base d'un serveur à un autre
    Par TiSteph dans le forum Administration
    Réponses: 3
    Dernier message: 06/03/2003, 18h04
  4. [Crystal Report 8.5 + VB6] Pbm déploiment
    Par La Gillasse dans le forum SDK
    Réponses: 2
    Dernier message: 14/10/2002, 15h19
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo