0

如何使用 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 代码来做到这一点?

4

0 回答 0