我有以下实体:
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代码的第一个命名约定,在两种情况下都应该使用propoerty名称?收藏夹表的名称应该是UserFavourites吗?
如果问题与ICollection的命名无关,我应该如何指示EF从“收藏夹”表中加载用户收藏BlogEntry的用户列表和受用户青睐的BlogEntrie列表?
答案 0 :(得分:0)
当你使用Code First时,你不应该自己创建表:让框架为你做。
只需在ICollection<User>
中创建BlogEntry
属性,在用户实体中创建ICollection<BlogEntry>
。首先,请忽略User
中的BlogEntry
属性。然后,实体框架将为您创建联结表“UsersBlogEntries”。
当然还有更多内容,但这应该让你开始。在这个问题上,SO充满了优秀的答案。