C# 领域建模问题

C# 领域建模问题,c#,domain-driven-design,entity-framework-4,code-first,C#,Domain Driven Design,Entity Framework 4,Code First,我工作的网站有一个用户和一个网站的概念。用户可以加入全球网站并在www.globalsite.com/ministe中创建迷你网站。用户还可以关注其他用户创建的其他迷你网站。想象一下,如果Twitter允许你加入一组凭证,并创建不同的帐户,一个用于@personal use,@business use等 我使用EF CTP4,并首先使用代码。我只是不确定我的模型设计是否正确 public class User : IEntity { public virtual ICollection&

我工作的网站有一个用户和一个网站的概念。用户可以加入全球网站并在www.globalsite.com/ministe中创建迷你网站。用户还可以关注其他用户创建的其他迷你网站。想象一下,如果Twitter允许你加入一组凭证,并创建不同的帐户,一个用于@personal use,@business use等

我使用EF CTP4,并首先使用代码。我只是不确定我的模型设计是否正确

public class User : IEntity
{
    public virtual ICollection<Site> Sites{ get; set; }
    public virtual ICollection<Site> Following{ get; set; }
    ....
}

public class Site: IEntity
{
    public virtual User User{ get; set; }
    public virtual ICollection<User> Following{ get; set; }
    ....
}
语法,但现在我已经升级到CPT4,这不再有效。我希望EF在DB中创建一个名为SiteFolling_UserFollowing的关系表,其中包含SiteId和UserId,但它创建了一个包含SiteIdPK和UserIdPK的Site_用户表,一个包含Following_IdPK和Site_IdPK的Following_站点,以及一个包含Following_IdPK和User_IdPK的Following_用户表

任何指导都很好,谢谢

如果要映射多对多关系,用户有多个站点,可以在UserMap的CTP4中执行以下操作:

您也可以描述多对多关系所在的表:

this.HasMany(u => u.Sites).WithMany().Map(new StoreTableName("SiteFollowing_UserFollowing", "dbo"), (u, s) => new { UserId = u.Id, SiteId = s.Id });

如果这不是你想要的,一定要告诉我。干杯

你能发布你当前的映射吗?@TheCloudlessky-我添加了映射代码,有什么想法吗?
Relationship(u => u.SitesFollowing).FromProperty(s => s.UsersFolling);
this.HasMany(u => u.Sites).WithMany();
this.HasMany(u => u.Sites).WithMany().Map(new StoreTableName("SiteFollowing_UserFollowing", "dbo"), (u, s) => new { UserId = u.Id, SiteId = s.Id });