【发布时间】:2022-01-02 09:27:15
【问题描述】:
我有一个启用了可为空引用类型的 .NET 6 项目 (<Nullable>enable</Nullable>)。我有这个 EF 实体:
public class PostFile {
public Int32 UserId { get; set; }
public Int32 PostId { get; set; }
public virtual User? User { get; set; }
public virtual Post? Post { get; set; }
}
我在上面添加了? 以防止出现此可为空的警告:
Non-nullable property '...' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.
现在,我有这个 Entity Framework 6 LINQ 查询:
var postFiles = context.postFiles.Where(x => x.User.Id == request.UserId);
...但我收到以下警告:
Dereference of a possibly null reference.
...关于我的查询的这一部分:
x.User.Id == ...
如何解决此警告?
【问题讨论】:
-
PostFile和User的表关系是什么? (用户属性在哪里?)是否保证每个 PostFile 都只有一个用户(并且永远不会“没有”用户)?
-
另外,您是否希望 PostFile 没有关联的 Post?当您期望该值可能为空时,您只会使用
?。如果没有匹配的 Post,我不希望 PostFile 存在。 -
PostFile 将始终有一个 User 和 Post 但我相信 EF 在同样的情况下可能不会加载 Post 或 File?
-
可能是 context.postfiles.Include(x => x.User).Where(....entityframework.net/include
标签: c# entity-framework-core entity-framework-6 .net-6.0