Asp.无法创建类型的常数值.在此上下文中只支持基本类型或枚举类型
本文关键字:类型 支持 上下文 枚举 创建 常数值 Asp | 更新日期: 2023-09-27 18:02:44
这里有一堆这样的问题,但大多数都涉及一个独特的问题,我还没有发现一个适用于我的代码。
当我尝试用ToList()
转换到列表时发生错误。
fields
不包含数据,因此它可能是select
命令。
==
和.Equals()
得到相同的结果。
var fields = from f in db2.Fields
where f.UpFile.Equals(upFile)
select f;
ViewBag.Fields = fields.ToList();
模型代码:
namespace steer.Models
{
public class UpFile
{
[Key]
[Display(Name="Auðkenni")]
public int ID { get; set; }
[Required]
[Display(Name="Nafn")]
public string Name { get; set; }
[Required]
[Display(Name = "Hlaðið þann")]
public DateTime Date { get; set; }
[Required]
[Display(Name="Tegund")]
public string FileType { get; set; }
[Required]
[Display(Name = "Stærð (kB)")]
public int Size { get; set; }
public string Columns { get; set; }
public virtual ICollection<Field> Fields { get; set; }
public class UpFileDBContext : DbContext
{
public DbSet<UpFile> UpFiles { get; set; }
}
}
public class Field
{
public int ID { get; set; }
public string values { get; set; }
[ForeignKey("UpFile")]
public int UpFileID { get; set; }
public virtual UpFile UpFile { get; set; }
public class FieldDBContext : DbContext
{
public DbSet<Field> Fields { get; set; }
}
}
}
我怀疑问题是您在查询中使用复杂类型进行比较f.UpFile.Equals(upFile)
你为什么不尝试比较一个基本类型,比如upFile id ?
I would try:
var fields = from f in db2.Fields
where f.UpFile.ID == upFile.ID
select f;
ViewBag.Fields = fields.ToList();