代码优先模型外键属性SocialDetails为空,即使当ID';s在数据库中匹配
本文关键字:ID 数据库 模型 属性 为空 SocialDetails 代码 | 更新日期: 2023-09-27 17:58:03
我正在尝试调试DBContext查询,生成的SQL看起来像这个
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[SocialDetails_Id] AS [SocialDetails_Id]
FROM [dbo].[Items] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0
然而,即使我在DB 中检查了ID,外键属性SocialDetails也是空的
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
[Required]
public User User { get; set; }
[Required]
public SocialDetails SocialDetails { get; set; }
etc
找出SocialDetails为何总是为空的最佳方法是什么?
您可能禁用了延迟加载。
正如Matt Whetton所建议的,试着做这样的事情:
var items = from x in dbContext.Items.Include("SocialDetails")
where x.Id = id
select x;
其中dbContext是您的上下文,并且您有一个名为Items 的DbSet
另请参阅此链接(MSDN):
加载相关对象