0

我有以下实体:

public class User : EntityBase
{
    [Required]
    [Key]
    public Guid Id { get; set; }
    public virtual ICollection<BlogEntry> BlogEntries { get; set; }
    public virtual ICollection<BlogEntry> [Name?] { get; set; } // User favourite blog entries
}

public class BlogEntry : EntityBase
{
    [Required]
    [Key]
    public Guid Id { get; set; }
    public virtual User User { get; set; }
    public virtual ICollection<User> [Name?] { get; set; } // Users who favourites blog entry
}

CREATE TABLE [dbo].[Favourites](
[BlogEntry_Id] [uniqueidentifier] NOT NULL,
[User_Id] [uniqueidentifier] NOT NULL,
)

如果我要遵循 EF 代码优先命名约定,那么在这两种情况下应该使用什么属性名称?收藏夹表的名称也应该是 UserFavourites?

如果问题与 ICollection 的命名无关,我应该如何指示 EF 从收藏夹表中加载收藏 BlogEntry 的用户列表和用户收藏的 BlogEntrie(s) 列表?

4

1 回答 1

0

当您使用 Code First 时,您不应该自己创建表:让框架为您完成。

只需 在用户实体中创建一个ICollection<User>属性BlogEntry和一个。ICollection<BlogEntry>首先,从 中省略该User属性BlogEntry。然后,实体框架将为您创建联结表“UsersBlogEntries”。

当然,还有更多内容,但这应该可以帮助您入门。SO 充满了关于这个主题的优秀答案。

于 2012-08-22T18:32:08.113 回答