ОК, спасибо, Марк. Мне было трудно увидеть, что должно быть в файлах класса Dapper и что должно быть в моем коде позади. Первоначальный демонстрационный способ получения товара по идентификатору имел запрос: .FirstOrDefault ();
Я изменил все, чтобы вернуть список <>, и все заработало. Я уверен, что мой ADO.NET показывает, но это работает. В файлах класса Dapper:
public List<Product> ProductAsList(int Id)
{
return this._db.Query<Product>("SELECT * FROM Cart_product WHERE ProductID=@Id", new { Id = Id }).**ToList()**;
}
Это просто получение одной строки, которая соответствует ProductID.
В коде страницы:
protected void CartItemAdd(string ProductId) // passing it the selected ProductID
{
var results = cartservice.ProductAsList(Convert.ToInt32(ProductId));
// возвращает эту строкуиспользование Dapper ProductAsList (ProductId)
int _ProductId = 0;
string Description = string.Empty;
decimal Price = 0;
// Прокручивание списка и получение значения каждого элемента:
foreach (Product obj in results)
{
_ProductId = obj.ProductID;
Description = obj.Description;
Price = obj.Price;
}
// Использование Dapper для вставки выбранного товара в покупкикорзина (таблица):
String UserName = "jbanks";
cartitem = new CartItem();
cartitem.ProductID = _ProductId;
cartitem.Quantity = 1;
cartitem.Description = Description;
cartitem.Price = Price;
cartitem.Created = DateTime.Now;
cartitem.CreatedBy = UserName;
result = cartservice.AddCartItem(cartitem);
if (result)
{
lblMessage.Text = string.Empty;
lblMessage.Text = "Successfully added a cart item";
}
}
}
Она действительно ищет продукт из одной таблицы и вставляет выбранный элемент в другую таблицу.
Еще раз спасибо!