如何使用EF6 Code First将字符串集合映射到数据库。
这是我的情景。我有一个带有字符串集的书类
public class Book
{
public int Id { get; set; }
public string Title { get; set; }
public string ISBN { get; set; }
public virtual ICollection<string> Tags { get; set; }
}
我想将此集合映射到下表。我不希望将字符串序列化为单个字段,因为我想在数据库中查询它们。
CREATE TABLE [dbo].[Books](
[Id] [int] NOT NULL,
[Title] [nvarchar](100) NOT NULL,
[ISBN] [nchar](17) NOT NULL,
CONSTRAINT [PK_Books] PRIMARY KEY CLUSTERED ([Id] ASC)
)
GO
CREATE TABLE [dbo].[BookTags](
[BookId] [int] NOT NULL,
[Tag] [nvarchar](50) NOT NULL,
CONSTRAINT [FK_BookTags_Book] FOREIGN KEY ([BookId]) REFERENCES [Books]([Id]),
CONSTRAINT [FK_BookTags_Tag] UNIQUE ([Tag]),
CONSTRAINT [PK_BookTags] PRIMARY KEY ([BookId], [Tag])
)
GO
我已经读过EF中不支持原始集合的地方,但这看起来像一个简单的场景,我们现在正在使用版本6。这是可能的,如果是这样,我怎么能首先使用EF6代码呢?