我正在尝试将IEnumerable
一个继承类型转换IEnumerable
为基类。
试过以下:
var test = resultFromDb.Cast<BookedResource>();
return test.ToList();
但出现错误:
您无法转换这些类型。Linq to Entities 仅支持转换原始 EDM 类型。
涉及的类如下所示:
public partial class HistoryBookedResource : BookedResource
{
}
public partial class HistoryBookedResource
{
public int ResourceId { get; set; }
public string DateFrom { get; set; }
public string TimeFrom { get; set; }
public string TimeTo { get; set; }
}
public partial class BookedResource
{
public int ResourceId { get; set; }
public string DateFrom { get; set; }
public string TimeFrom { get; set; }
public string TimeTo { get; set; }
}
[MetadataType(typeof(BookedResourceMetaData))]
public partial class BookedResource
{
}
public class BookedResourceMetaData
{
[Required(ErrorMessage = "Resource id is Required")]
[Range(0, int.MaxValue, ErrorMessage = "Resource id is must be an number")]
public object ResourceId { get; set; }
[Required(ErrorMessage = "Date is Required")]
public object DateFrom { get; set; }
[Required(ErrorMessage = "Time From is Required")]
public object TimeFrom { get; set; }
[Required(ErrorMessage = "Time to is Required")]
public object TimeTo { get; set; }
}
我要解决的问题是从表中获取记录HistoryBookedResource
并在IEnumerable<BookedResource>
使用实体框架和 LINQ 中得到结果。
更新:
当使用以下铸造接缝工作但尝试使用 foreach 循环时,数据会丢失。
resultFromDb.ToList() as IEnumerable<BookedResource>;
更新 2:
我使用实体框架生成模型,模型(edmx)是从数据库创建的,edmx 包括代表数据库表的类。
在数据库中,我有一个旧 BookedResource 的历史表,用户可能想查看这些并从数据库实体框架中获取旧数据,使用与表同名的类从数据库接收数据。所以我从 HistoryBookedResource 类中的表 HistoryBookedResource 接收数据。
因为实体框架生成具有属性的部分类,所以我不知道我是否可以使它们成为虚拟并覆盖。
任何建议将不胜感激。