我正在尝试将查询结果存储到隔离存储应用程序中的XML中。 这是关于查询的我的来源,但问题是我无法将Productlist转换为List或Iqueryable,因此我可以将数据传递给Save_Product()方法。在此先感谢帮助人员。
private void loadProductCombobox()
{
productDomainContext = new ProductDS();
EntityQuery<product> bb = from b in productDomainContext.GetProductsQuery() select b;
LoadOperation<product> res = productDomainContext.Load(bb, new Action<LoadOperation<product>>(loadProductComboboxcompleted), true);
}
private void loadProductComboboxcompleted(LoadOperation<product> obj)
{
selectProductComboBox.ItemsSource= productDomainContext.products;
****************Issue causing line*************
IEnumerable<product> productList = (IEnumerable<product>)productDomainContext.products;
List<product> productlist2 = (List<product>)productList;
Save_Product(productlist2);
*******************
}
public static void Save_Product(List<product> product)
{
using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = store.OpenFile("Product.XML", FileMode.OpenOrCreate, FileAccess.Write))
{
using (TextWriter writer = new StreamWriter(stream))
{
XmlSerializer serializer = new XmlSerializer(typeof(List<product>));
serializer.Serialize(writer, product);
}
}
}
}
我也尝试过这样做:
private void loadProductCombobox()
{
productDomainContext = new ProductDS();
EntityQuery<product> bb = from b in productDomainContext.GetProductsQuery() select b;
LoadOperation<product> res = productDomainContext.Load(bb, new Action<LoadOperation<product>>(loadProductComboboxcompleted), true);
}
private void loadProductComboboxcompleted(LoadOperation<product> obj)
{
selectProductComboBox.ItemsSource= productDomainContext.products;
Save_Product(productDomainContext.products);
}
public static void Save_Product(EntitySet<product> product)
{
using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = store.OpenFile("Product.XML", FileMode.OpenOrCreate, FileAccess.Write))
{
using (TextWriter writer = new StreamWriter(stream))
{
XmlSerializer serializer = new XmlSerializer(typeof(EntitySet<product>));
serializer.Serialize(writer, product);
}
}
}
}
它说它不能被序列化,因为它必须是不可数的
答案 0 :(得分:0)
我无法弄清楚为什么序列化程序不能直接从实体工作,但我通过制作模型副本列表然后我序列化它来解决它。
希望这会有所帮助。