我已经尝试过这样的查询,但未能获得预期的(或期望的)结果
using (ModelDBDataContext dataContext = new ModelDBDataContext("Data Source='isostore:/PueblosDB.sdf'"))
{
if (!dataContext.DatabaseExists())
{
dataContext.CreateDatabase();
List<Pueblo> puebloObj = new List<Pueblo>()
{
new Pueblo()
{
Id=1, Nombre="Aguadas", Imagen="Recursos/Imagenes/aguadas.png",Descrip="Algo",Coord="Algo"
},
new Pueblo()
{
Id=2, Nombre="Villa de Leyva", Imagen="Recursos/Imagenes/Villa de Leyva.png",Descrip="algo",Coord="Algo"
}
};
dataContext.Pueblo.InsertAllOnSubmit(puebloObj);
dataContext.SubmitChanges();
}
}
}
创建后,我使用xaml加入数据
public List<Pueblo> misPueblos { get; set; }
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
using (ModelDBDataContext contextoDatos = new ModelDBDataContext("Data Source='isostore:/PueblosDB.sdf'"))
{
misPueblos = contextoDatos.Pueblo.ToList();
}
listBox2.ItemsSource = misPueblos;
}
在这个地方,我使用事件点击进行咨询
var pue = from Pueblo in misPueblos
where Pueblo.Id == Convert.ToInt32(id)
select (new{Pueblo.Nombre}) ;
MessageBox.Show("este es el id: " + pue.ToList());
答案 0 :(得分:0)
在最后的代码段中,var pue
将作为包含单个字符串属性的匿名对象的枚举出现。 MessageBox.Show
正在尝试构造要显示的字符串,但不知道如何处理该列表。
看来你的目的是为单个字符串属性提供一个id。
var pue = from Pueblo in misPueblos
where Pueblo.Id == Convert.ToInt32(id)
select Pueblo.Nombre ;
MessageBox.Show("este es el id: " + pue.FirstOrDefault()??"Not Found");
现在var pue
是一个简单的字符串枚举,因为您可能需要一条记录,所以对FirstOrDefault的调用会将枚举转换为第一条记录中的单个字符串,如果没有找到记录,则返回null。 / p>