我通过 SQL Server 创建了一个基本数据库,其表由以下代码生成:
CREATE TABLE [dbo].[Characters]
(
[ID] INT NOT NULL PRIMARY KEY,
[Name] varchar(MAX) NOT NULL,
[RefName] varchar(8) NOT NULL
)
CREATE TABLE [dbo].[Players]
(
[ID] INT NOT NULL PRIMARY KEY,
[Name] VARCHAR(MAX) NOT NULL,
[SkypeHandle] VARCHAR(MAX) NOT NULL
)
CREATE TABLE [dbo].[CharacterOwnership]
(
[CharacterID] int NOT NULL,
[PlayerID] int NOT NULL,
CONSTRAINT [FK_CharacterOwnership_ToCharacters] FOREIGN KEY ([CharacterID]) REFERENCES [Characters]([ID]),
CONSTRAINT [FK_CharacterOwnership_ToPlayers] FOREIGN KEY ([PlayerID]) REFERENCES [Players]([ID]),
)
从 Visual Studio 2012 的服务器资源管理器中拖动表,我生成了下图:
据我所知,我正确设置了主键和外键。
和
var db = new DBClassesDataContext();
LINQ 能够毫无问题地访问每个表以及该表的任何字段。但是它不能调出关联的表。
在过去的几天里,我已经使用 LINQ to SQL(使用另一个数据库)设置了另一个项目,并且之前没有遇到过这个问题。由于 PK 和 FK 的配置不正确,所以在其他所有遇到此问题的人周围搜索了一下,但我发现它们对我来说似乎是正确的。(如果不是,请随时指出我的方法的错误!)
我也遵循建议关闭 Visual Studio 并重新打开,但无济于事。