C# 从数据库加载内容会导致空变量.net MVC
我正试图从VisualStudio中的数据库中加载一些东西,这是可行的。但是,我得到的对象有一些空变量: 我正在加载类“ClauseComponent”的实例。此对象有2个类型为“ClauseComponent”的属性。这两个属性为空 截图: 存储库中的代码:C# 从数据库加载内容会导致空变量.net MVC,c#,asp.net-mvc,C#,Asp.net Mvc,我正试图从VisualStudio中的数据库中加载一些东西,这是可行的。但是,我得到的对象有一些空变量: 我正在加载类“ClauseComponent”的实例。此对象有2个类型为“ClauseComponent”的属性。这两个属性为空 截图: 存储库中的代码: Grade gr = grades.Include(l => l.DeterminateTableProp.ClauseComponent) .FirstOrDefault(g => g.GradeId == gra
Grade gr = grades.Include(l => l.DeterminateTableProp.ClauseComponent)
.FirstOrDefault(g => g.GradeId == gradeId);
ClauseComponent映射器中的代码:
public ClauseComponentsMapper()
{
ToTable("ClauseComponents");
// Primary key
HasKey(c => c.ClauseComponentId);
// Properties
Property(c => c.ClauseComponentId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
}
子句类中的代码(从ClauseComponent类继承):
这是什么原因造成的 很遗憾,我认为EF无法处理仅引用子类(TPH)的属性上的急切加载
有一些使用投影的变通方法,例如,但它们并不漂亮。答案是我需要在ProjectContext类中禁用延迟加载:
//this.Configuration.ProxyCreationEnabled = false;
数据库中的空值?不,正如您在这里看到的:这是实体框架吗?调试它或使用Wireshark查看实际执行的查询。是的,这是实体框架。我会尽快发布查询。现在不在pc上。{从[dbo].[Grades]中选择[Extent1].[GradeId]作为[GradeId],[Extent1].[name]作为[name],[Extent1].[DeterminateTableProp_DeterminateTableId]作为[DeterminateTableProp_DeterminateTableId]。[Grades]作为[Extent1]}我应该在延迟加载时执行此操作,但是怎么做呢?试着去理解在同一个问题上的解决方法,我不认为这是同一个问题。
//this.Configuration.ProxyCreationEnabled = false;