2011-01-17 7 views
1

J'essaie de créer une relation un-à-un entre deux tables, mais par conséquent j'ai un-à-plusieurs. Quel est le problème avec ce code?Entity Framework Code Première relation un-à-un

namespace EFCF_Demo.Models 
{ 
    public class Post 
    { 
     [Key] 
     public int ID { get; set; } 
     public string Title { get; set; } 
     public string MiniContent { get; set; } 
     public string Author { get; set; } 
     public DateTime PublishDate { get; set; } 
     public int Rating { get; set; } 
     public virtual Content MainContent { get; set; } 
    } 

    public class Content 
    { 
     public int ID { get; set; } 
     public virtual Post Post { get; set; } 
     public string FullContent { get; set; } 
    } 

    public class PostEntities : DbContext 
    { 
     public DbSet<Post> Posts { get; set; } 
     public DbSet<Content> Contents { get; set; } 
    } 
} 
+0

Je ne vois pas KeyAttribute dans la classe Content. –

+0

La clé est détectée automatiquement par EFCF et son ID. Je résous cela avec une API fluide, mais l'acier a quelques problèmes avec la sauvegarde du contenu. –

+0

si je ne me trompe pas, lorsque la propriété est nommée Id, ou ClassNameId, elle est supposée être la clé primaire – hazimdikenli

Répondre

1

problème a été résolu en supprimant

public DbSet<Content> Contents { get; set; } 

Après que nous ne avons pas besoin d'utiliser t Il API Fluent mais j'ai quelques problèmes avec l'épargne.

2

Vous n'avez pas besoin de PostId dans la classe Content et ContentId dans la classe Post?

 public class Content 
     { 
      [Key] 
      public int PostId { get; set; } 
      public virtual Post Post { get; set; } 
      public string FullContent { get; set; } 
     } 

Et à ce sujet :) Cela devrait le faire.

Questions connexes