使用Entity Framework 6.1映射字符串集合

时间:2017-10-16 15:17:38

标签: c# .net entity-framework-6 ef-code-first-mapping

如何使用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代码呢?

0 个答案:

没有答案