在我的UWP应用程序中:我有一个SQLite数据库,包含一些点和它的坐标。我正在使用Entity Framework 7,我想将数据绑定到地图控件。因为我只想保留数据库中的坐标。我创建了一个部分类来添加其他必需的属性来绑定到地图:
//Database Fields
public partial class oFeature
{
[Key]
public string idRecord { get; set; }
public string idTag { get; set; }
public Double Latitude { get; set; }
public Double Longitude { get; set; }
public string ImageSourceUri { get; set; }
public string MoreInfo { get; set; }
}
//Binding Required Fields
public partial class oFeature
{
[NotMapped]
public Geopoint Location { get; set; }
[NotMapped]
public Point NormalizedAnchorPoint { get; set; }
[NotMapped]
public Uri UriSourceImage { get; set; }
}
要创建绑定列表,我有以下代码:
IQueryable<oFeature> myFeatures;
using (var db = new fldContext())
{
myFeatures = from b in db.oFeatures
select new oFeature()
{
idRecord = b.idRecord,
idTag = b.idTag,
Latitude = b.Latitude,
Longitude = b.Longitude,
ImageSourceUri = b.ImageSourceUri,
MoreInfo = b.MoreInfo,
Location = new Geopoint(new BasicGeoposition(){Latitude=b.Latitude,Longitude=b.Longitude}),
NormalizedAnchorPoint = new Point(0.5, 0.5),
UriSourceImage = new Uri("ms-appx:///Assets/green.png")
};
int recount = myFeatures.Count();
var sourceData = myFeatures.ToList();
MapItems.ItemsSource = sourceData;
}
如果我删除了位置线:
Location = new Geopoint(new BasicGeoposition(){Latitude=b.Latitude,Longitude=b.Longitude})
代码可以工作,但当我绑定到地图时,我收到错误,因为我没有位置。但如果我保留位置线,我会在这一行得到错误:
int recount = myFeatures.Count();
我收到以下错误: 类型&#39; System.ArgumentNullException&#39;的例外情况发生在System.Linq.Expressions.dll中但未在用户代码中处理
附加信息:值不能为空。
{&#34; Value不能为null。\ r \ nParameter name:constructor&#34;}
任何帮助都将不胜感激。