2017-06-08 10 views
0

Ich habe eine Userprofile KlasseDomain Klasse Modellierung Konflikt

public class UserProfile 
{ 
    public UserProfile() 
    { 
    } 

    public UserProfile(string userId) 
    { 
     AppUserId = userId; 
    } 

    [Key] 
    public int UserProfileId { get; set; } 

    public string AppUserId { get; set; } 
    public ICollection<Blog> AuthoredBlogs { get; set; } 
    public ICollection<Blog> SubscribedBlogs { get; set; } 

    //other properties removed for brevity 
} 

und die dazugehörige Blog Klasse

public class Blog 
{ 
    [Key] 
    public int BlogId { get; set; } 

    [ForeignKey("BlogAuthor")] 
    [Index("IX_AuthorIndex", 1, IsClustered = false, IsUnique = false)] 
    public int AuthorId { get; set; } 

    [Required] 
    public Author BlogAuthor { get; set; } 

    [Required(ErrorMessage = "A blog name is required")] 
    public string BlogName { get; set; } 

    public string BlogIconUrl { get; set; } 
    public List<BlogPost> BlogPosts { get; set; } 

    public EquipmentCategory EquipmentCategory { get; set; }  
    public EquipmentType EquipmentType { get; set; } 

    public ICollection<int> BlogReaderIds { get; set; } 

    public Blog(string name, Author author) 
    { 
     BlogName = name; 
     BlogAuthor = author; 
     EquipmentType = EquipmentType.NoSearch; 
     EquipmentCategory = EquipmentCategory.NoSearch; 
    } 

    public Blog() 
    { 
     EquipmentType = EquipmentType.NoSearch; 
     EquipmentCategory = EquipmentCategory.NoSearch; 
    } 
} 

ich eine harte Zeit habe, herauszufinden, wie die beiden Sammlungen in Userprofile zu modellieren (AuthoredBlogs und SubscribedBlogs) mit Blog-Klasse. Diese beiden Sammlungen in UserProfile zu verwenden, würde zwei FK-Assoziationen zu Blog erfordern, aber ich sehe einfach nicht, wie das funktionieren kann/sollte.

Ein UserProfile kann viele Blogs abonnieren und erstellen. Aber die Blog-Klasse kann nur einen Autor und entweder eine Liste von abonnierten UserProfiles oder, wie ich es hier habe, eine Liste der UserProfileId des Abonnenten haben.

Ich kann es nicht zum Laufen zu bringen, die ersten Updates des Codes können nicht auf die db aufgrund der FK-Association Probleme bereitstellen.

Jede Hilfe wird geschätzt.

Antwort

0

Diese Modellanmerkungen erstellen eine Eins-zu-viele-Beziehung zwischen Autor und Blogs und eine Viele-zu-Viele-Beziehung zwischen Blogs und Abonnenten über die automatisch erstellte Tabelle shadow.

public class UserProfile 
{ 
    //other stuff... 

    [InverseProperty("Autor")] 
    public ICollection<Blog> AuthoredBlogs { get; set; } 
    [InverseProperty("SubscribedUserProfiles")] 
    public ICollection<Blog> SubscribedBlogs { get; set; } 
} 

public class Blog 
{ 
    //other stuff.. 

    public ICollection<UserProfile> SubscribedUserProfiles { get; set; }   

    public UserProfile Autor { get; set; } 
    [ForeignKey("Autor")] 
    public int AutorId { get; set; } 
} 
+0

... krank versuchen Sie es und sehen – dinotom