我已经通过项目从dotnet core 2.1转换到dotnet 6。我正在一步一步地转换它。我现在卡住的是where子句。我不能在存储库中运行这个简单的查询
public IQueryable<PostType> getPostType()
{
var d= _context.PostType.Where(e => e.PostStatusId==2).ToList(); // this thing is not working
return _context.PostType.Where(e => e.PostStatusId == 2);
}
任何人都可以得到为什么?查询是工作之前
这就是结果
邮件类型
CREATE TABLE [dbo].[PostType](
[PostTypeId] [int] NOT NULL,
[PostTypeGuid] [uniqueidentifier] NULL,
[ParentId] [int] NULL,
[CategoryId] [int] NULL,
[Name] [varchar](100) NOT NULL,
[Slug] [varchar](500) NULL,
[ThumbnailImg] [nvarchar](255) NULL,
[WebSiteId] [int] NULL,
[PostStatusId] [int] NOT NULL,
[isMediaType] [bit] NOT NULL,
[isNewsletter] [bit] NOT NULL,
[AllowableExtension] [varchar](100) NULL,
[CreatedBy] [int] NULL,
[CreatedDate] [datetime] NULL,
[ModifiedBy] [int] NULL,
[ModifiedDate] [datetime] NULL,
CONSTRAINT [PK_PostType] PRIMARY KEY CLUSTERED
(
[PostTypeId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PostType] ADD CONSTRAINT [DF_PostType_PostTypeGuid] DEFAULT (newid()) FOR [PostTypeGuid]
GO
ALTER TABLE [dbo].[PostType] ADD CONSTRAINT [DF_PostType_int_PostStatusId] DEFAULT ((2)) FOR [PostStatusId]
GO
1条答案
按热度按时间0ve6wy6x1#
我认为这个问题与this one类似,是由于EF Core中添加了nullable reference types及其支持而引起的。请参阅文档的必需和可选属性-〉约定部分:
C# 8引入了一个名为可空引用类型(NRT)的新特性,它允许引用类型被注解,指示它们是否包含空值。这个特性在新项目模板中默认启用,但在现有项目中保持禁用,除非显式选择。可空引用类型以如下方式影响EF Core的行为:
请停用项目的可为Null指涉型别,或将Map的属性标记为可为Null(在此情况下,某些
string
会造成问题,因此请将Map属性的string
变更为string?
)。