C# 无法将DataProxies类型的对象强制转换为ICollection
完全错误无法将类型为“System.Data.Entity.DynamicProxies.ActionDirectory”的对象转换为类型为“System.Collections.Generic.ICollection`1[FBT_Grass.Models.ActionDirectory]”的对象 所以我使用了一些遗留代码,并像这样实例化了一个步骤C# 无法将DataProxies类型的对象强制转换为ICollection,c#,sql,entity-framework,asp.net-mvc-5,C#,Sql,Entity Framework,Asp.net Mvc 5,完全错误无法将类型为“System.Data.Entity.DynamicProxies.ActionDirectory”的对象转换为类型为“System.Collections.Generic.ICollection`1[FBT_Grass.Models.ActionDirectory]”的对象 所以我使用了一些遗留代码,并像这样实例化了一个步骤 GrievanceStep step = db.GrievanceSteps.SingleOrDefault(gs=> gs.Grievanc
GrievanceStep step = db.GrievanceSteps.SingleOrDefault(gs=> gs.GrievanceStepId == id);
因此,当我在调试器中停止它时,一切看起来都很好,但当我尝试访问ActionDirectory实体时,一切都会顺利进行,直到我尝试访问ActionDirectory.Directory
我真的很难破译这个密码和正在发生的事情。我几乎可以肯定这些实体设置错误,但我的大脑因为长时间盯着它们而受到伤害。任何帮助都是非常感谢的:D
public class ActionDirectory
{
public Guid ActionID { get; set; }
[ForeignKey("ActionID")]
public virtual Action Action { get; set; }
public Guid DirectoryID { get; set; }
[ForeignKey("DirectoryID")]
public virtual Filesystem Directory { get; set; }
public Guid GrievanceStepID { get; set; }
[ForeignKey("GrievanceStepID")]
public virtual GrievanceStep GrievanceStep { get; set; }
}
全班同学都在努力争取董事
public class GrievanceStep
{
[Column("GrievanceStepId")]
public Guid GrievanceStepID { get; set; }
public String Name { get; set; }
public bool Completed { get; set; }
public string CompletedOn { get; set; }
public Guid? GrievanceID { get; set; }
[ForeignKey("GrievanceID")]
public virtual Grievance Grievance { get; set; }
public bool IsNullStep { get; set; }
public virtual ICollection<Action> Actions { get; set; }
public virtual ICollection<GrievancePropertyField> Fields { get; set; }
public virtual ICollection<GrievanceStepProperty> DefaultProperties { get; set; }
public virtual ICollection<GrievanceApprovers> GrievanceApprovers { get; set; }
public virtual ICollection<DocumentGrievanceStep> GrievanceStepDocuments { get; set; }
public virtual ICollection<DirectoryGrievanceStep> GrievanceStepDirectories { get; set; }
[JsonIgnore]
public virtual ICollection<ActionDocument> ActionDocuments { get; set; }
[JsonIgnore]
public virtual ICollection<ActionDirectory> ActionDirectories { get; set; }
}
public类步骤
{
[列(“步骤ID”)]
公共Guid StepID{get;set;}
公共字符串名称{get;set;}
公共bool已完成{get;set;}
在{get;set;}上完成的公共字符串
公共Guid?ID{get;set;}
[ForeignKey(“申诉ID”)]
公共虚拟申诉申诉{get;set;}
公共bool IsNullStep{get;set;}
公共虚拟ICollection操作{get;set;}
公共虚拟ICollection字段{get;set;}
公共虚拟ICollection DefaultProperties{get;set;}
公共虚拟ICollection审批者{get;set;}
公共虚拟ICollection文档{get;set;}
公共虚拟ICollection目录{get;set;}
[JsonIgnore]
公共虚拟ICollection操作文档{get;set;}
[JsonIgnore]
公共虚拟ICollection操作目录{get;set;}
}
这是文件系统
public class Filesystem
{
[Column("DirectoryID")]
public Guid DirectoryID { get; set; }
public HierarchyId hNode { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
public Guid CreatedByID { get; set; }
[ForeignKey("CreatedByID")]
[Required]
public virtual User Creator { get; set; }
[JsonIgnore]
[ForeignKey("ActionID")]
public virtual ICollection<ActionDirectory> ActionDirectories { get; set; }
[JsonIgnore]
public virtual ICollection<DirectoryGrievanceStep> DirectoryGrievanceSteps { get; set; }
}
公共类文件系统
{
[列(“目录ID”)]
公共Guid目录ID{get;set;}
公共层次结构ID hNode{get;set;}
公共字符串名称{get;set;}
公共bool活动{get;set;}
公共Guid CreatedByID{get;set;}
[ForeignKey(“CreatedByID”)]
[必需]
公共虚拟用户创建者{get;set;}
[JsonIgnore]
[ForeignKey(“ActionID”)]
公共虚拟ICollection操作目录{get;set;}
[JsonIgnore]
公共虚拟ICollection目录{get;set;}
}
ForeignKey(“ActionID”)的目的是什么在文件系统中?@masa再次不确定,我继承了这段代码。这可能是问题吗?不确定,我对EF不太熟悉。这是一个关系问题,即当预期的关系为“多”时,ActionDirectory只有一个实例可用。我在我的环境中创建了您的模型并运行了一些实验,但无法重新编程uce解决问题。需要更多信息。例如,如何尝试访问ActionDirectory.Directory?使用[code>[ForeignKey(“ActionID”)]的目的是什么在文件系统中?@masa再次不确定,我继承了这段代码。这可能是问题吗?不确定,我对EF不太熟悉。这是一个关系问题,即当预期的关系为“多”时,ActionDirectory只有一个实例可用。我在我的环境中创建了您的模型并运行了一些实验,但无法重新编程解决问题。需要更多信息。例如,如何尝试访问ActionDirectory.Directory?