在阅读“ImageHighlight”表的内容时出现类型不匹配错误。
在designer.cs中,表格为:
public System.Data.Linq.Table<ImageHighlight>ImageHighlights
{
get
{
return this.GetTable<ImageHighlight>();
}
}
在我的代码中,我尝试在LoadStaticCache()
处的方法ApplicationStart
中缓存一个小表,以便稍后通过GetHighlightImages()
访问其内容。
public class StaticCache
{
private static ImageHighlight _images = null;
public static void LoadStaticCache()
{
// Get images - cache using a static member variable
using (var datacontext = new MHRDataContext())
{
_images = datacontext.ImageHighlights;
}
}
public static ImageHighlight GetHighlightImages()
{
return _images;
}
}
在代码行_images = datacontext.ImageHighlights;
我收到错误
无法隐式转换类型
System.Data.Linq.Table<HolidayRentals.Core.Domain.LinqToSql.ImageHighlight>
到HolidayRentals.Core.Domain.LinqToSql.ImageHighlight
它们都是同一类型。
答案 0 :(得分:1)
datacontext.ImageHighlights
是Table
,IQueryable
是ImageHighlight
。 _images
的类型为ImageHighlight
。您无法将这些类型相互转换。
由于您需要一些缓存机制,_images
表示它应包含多个图像实例,因此您应该更改_images
的类型。
将您的代码更改为:
public class StaticCache
{
private static List<ImageHighlight> _images = null;
public static void LoadStaticCache()
{
// Get images - cache using a static member variable
using (var datacontext = new MHRDataContext())
{
_images = datacontext.ImageHighlights.ToList();
}
}
public static List<ImageHighlight> GetHighlightImages()
{
return _images;
}
}