У меня есть класс продукта и вы пытаетесь оценить Dapper с базой данных Access. Операции Select, Delete и Insert работают нормально, но у меня проблема с операцией обновления. Она работает в одну сторону только код ниже)Dapper with Access, оператор обновления частично не работает
Когда я попытался изменить Описание основанный на ProductNumber это работает (updateStatement2) и описание обновляется, но когда я попытался изменить ProductNumber на основе Описание (updateStatement1) не работает, а ProductNumber не обновляется. Это немного странно для меня. Является ли это ошибкой или что-то мне не хватает? Моя база данных является базовой, а первичные ключи не установлены. Я приложил скриншот ниже
(Для получения дополнительной информации см мой код ниже)
public class Products
{
public string ProductNumber { get; set; }
public string Description { get; set; }
}
static void Main(string[] args)
{
using (var con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"))
{
Products product2 = new Products();
product2.ProductNumber = "P2";
product2.Description = "TestProduct2Changed";
var updateStatement2 = @"Update Products Set Description = @Description Where ProductNumber = @ProductNumber";
int outp2 = con.Execute(updateStatement2, product2);
Products product1 = new Products();
product1.ProductNumber = "P3Changed";
product1.Description = "TestProduct3";
var updateStatement1 = @"Update Products Set ProductNumber = @ProductNumber Where Description = @Description";
int outp1 = con.Execute(updateStatement1, product1);
}
}
Я использую Dapper версии 1.50.2. Это мой скриншот базы данных
Есть ли пробелы в сохраненном значении (описание)? – Shyju
Он работает, если мы проходим как динамические параметры. Я считаю несколько проблем с Dapper. con.Execute (updateStatement2, new {ProductNumber = "P3Changed", Description = "TestProduct3"}); – RobinAtTech