Блог в котором есть много интересной информации…
1. Инсталлируем Connector/Net.
2. В Visual Studio 2010 создаем ADO.NET Entity Data Model и импортируем пару таблиц из базы (например Joomla VirtueMart):
пишем код:
using (VirtueMartContext db = new VirtueMartContext())
{
jos_vm_product product = productListControl.SelectedProduct;
if (product != null)
{
db.Attach(product);
jos_vm_product_type_1 t1 = product.ProductType1;
//тут всё нормально
}
else
{
jos_vm_category category = productListControl.SelectedCategory;
if (category != null)
{
var products = from p in db.jos_vm_products
join r in db.jos_vm_product_category_xrefs on p.product_id equals r.product_id
where r.category_id == category.category_id && p.product_publish == "Y"
select p;
foreach (jos_vm_product p in products)
{
jos_vm_product_type_1 t1 = product.ProductType1;
//привет, приехали...
//There is already an open DataReader associated with this Command...
}
}
else
{
MessageBox.Show("Select product or category.");
}
}
db.SaveChanges();
}
Иными словами, если мы пишем под .NET, то надо использовать MS SQL Server, иначе definitely problems.
если сделать так, то все работает:
if (category != null)
{
jos_vm_product[] products;
{
products = (from p in db.jos_vm_products
join r in db.jos_vm_product_category_xrefs on p.product_id equals r.product_id
where r.category_id == category.category_id && p.product_publish == "Y"
select p).ToArray();
}
foreach (jos_vm_product p in products)
{
jos_vm_product_type_1 t1 = product.ProductType1;
//теперь всё ок
}
}