Ran*_*ger 2 .net linq database linq-to-sql
我通过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]),
)
Run Code Online (Sandbox Code Playgroud)
将表从Visual Studio 2012中的Server Explorer拖到上方时,生成了下图:

据我所知,我正确设置了主键和外键。
用
var db = new DBClassesDataContext();
Run Code Online (Sandbox Code Playgroud)
LINQ能够访问每个表以及该表的任何字段而不会出现问题。但是,它不能显示关联的表。
在过去的几天中,我使用LINQ to SQL(使用另一个数据库)设置了另一个项目,以前没有这个问题。我发现所有其他遇到此问题的人都在使用该工具,因为PK和FK的配置不正确,但正如我之前所说,它们对我来说似乎是正确的。(如果不是,请随时指出我的错误!)
我也听从建议关闭Visual Studio并重新打开,但无济于事。
所以我想通了。对于那些可能会通过Google遇到的人:
每个表,甚至是关联表,都必须具有主键。没有例外。
我不确定为什么(从逻辑上)会是这种情况,但我想这是LINQ to SQL的某些背景性质。
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |