在代码优先方法中,它看起来像这样:
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.Packages
或package1.Items
。但是我在现有的SQL Server数据库中创建这些表时遇到了麻烦。我将此数据库作为新的ADO.NET项目包含在我的项目中,然后看起来像.edmx
如何在SQL查询中创建外键,以便表之间的关系如上所述?
答案 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)
)