【问题标题】:LINQ to SQL Associations Not GeneratingLINQ to SQL 关联不生成
【发布时间】:2013-03-21 23:53:42
【问题描述】:

我通过 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 并重新打开,但无济于事。

【问题讨论】:

    标签: .net database linq linq-to-sql


    【解决方案1】:

    所以我想通了。对于那些可能通过 Google 遇到此问题的人:

    每个表,甚至关联表,都必须有主键。没有例外。

    我不知道为什么——从逻辑上讲——需要这样,但我想这是 LINQ to SQL 的一些背景性质。

    【讨论】:

    • “对于那些可能通过谷歌遇到这个的人”这就是我今天。感谢您抽出宝贵时间发布解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2011-04-08
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多