现有SQL Server New中的代码优先方法中的多对多

时间:2014-10-20 09:32:33

标签: c# sql-server entity-framework

在代码优先方法中,它看起来像这样:

public class Item
{
    public int Id { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Package> Packages { get; set; }
}

public class Package
{
    public int Id { get; set; }
    public string Title { get; set; }
    public virtual ICollection<Item> Items { get; set; }
}

它会自动创建联结表,我可以轻松访问item1.Packagespackage1.Items。但是我在现有的SQL Server数据库中创建这些表时遇到了麻烦。我将此数据库作为新的ADO.NET项目包含在我的项目中,然后看起来像.edmx

如何在SQL查询中创建外键,以便表之间的关系如上所述?

1 个答案:

答案 0 :(得分:1)

这将根据您发布的代码优先类创建表:

CREATE TABLE Items
(
    Id INT PRIMARY KEY,
    Title NVARCHAR(MAX),
)

CREATE TABLE Packages
(
    Id INT PRIMARY KEY,
    Title NVARCHAR(MAX),
)

CREATE TABLE ItemPackages
(
    ItemId INT NOT NULL,
    PackageId INT NOT NULL,
    FOREIGN KEY (ItemId) REFERENCES Items(Id),
    FOREIGN KEY (PackageId) REFERENCES Packages(Id)
)