0

我使用 EF Core 的 fluent API 创建了一个复合主键,它创建了这个表:

CREATE TABLE [dbo].[Review]  
(
    [UserId]           NVARCHAR(450) NOT NULL,
    [ArticleId]        INT           NOT NULL,
    [ReviewRating]     FLOAT(53)     NOT NULL,
    [ReviewContent]    NVARCHAR(MAX) NOT NULL,
    [ReviewLastUpdate] DATETIME2(7)  NULL,
    [ReviewCreated]    DATETIME2(7)  DEFAULT (getdate()) NOT NULL,
    [ReviewVisible]    BIT           DEFAULT ((1)) NOT NULL,

    CONSTRAINT [PK_Review] 
        PRIMARY KEY CLUSTERED ([UserId] ASC, [ArticleId] ASC),
    CONSTRAINT [FK_Review_AspNetUsers_UserId] 
        FOREIGN KEY ([UserId]) 
        REFERENCES [dbo].[AspNetUsers] ([Id]) 
                ON DELETE CASCADE,
    CONSTRAINT [FK_Review_Article_ArticleId] 
        FOREIGN KEY ([ArticleId]) 
        REFERENCES [dbo].[Article] ([ArticleId]) 
                ON DELETE CASCADE
);

来自UserIdAspNetUsers 表,而 Article 是我设置的自定义表,它会自动生成它的 id。

脚手架的 Create Page 有一个下拉菜单,我将其替换为隐藏的文本框,它存储当前登录用户的 UserId 值,并在提交表单时提交。

但是在提交时,我抛出了一个 SQL 异常

SqlException:将 nvarchar 值 '57ed59a3-e2c9-4805-a57d-3d1ea7afed3f' 转换为数据类型 int 时转换失败。

57ed59a3-e2c9-4805-a57d-3d1ea7afed3fUserId。_ 即使我尝试直接输入一个值,也会向我抛出同样的错误。

我什至尝试将其更改为非集群,因为它可能由于此处所述的第三个原因而发生冲突:https ://docs.microsoft.com/en-us/sql/relational-databases/indexes/create-clustered-indexes?view=sql -server-2017#Restrictions

但这并没有什么不同。谁能指出我可以做些什么来解决这个错误?

4

0 回答 0