【发布时间】:2014-03-06 11:20:21
【问题描述】:
我正在使用 NopCommerce。我创建了名为“ProductViewDetails”的新表。我试图在此表中插入/更新记录。当我尝试在表中插入新记录时,新记录插入成功。但是当我尝试更新操作时,方法“UpdateData”执行成功但记录没有更新。
代码:
public void IncremementViews(int productId)
{
ProductViewDetails ProductDetails = new ProductViewDetails();
ProductDetails.Id = 5;
ProductDetails.ProductId = 1;
ProductDetails.NumberOfViews = 10;
UpdateData(ProductDetails);
}
public void UpdateData(ProductViewDetails productDetails)
{
_productViewDetails.Update(productDetails);
}
更新方法代码:
public partial class EfRepository<T> : IRepository<T> where T : BaseEntity
{
private readonly IDbContext _context;
private IDbSet<T> _entities;
public void Update(T entity)
{
try
{
if (entity == null)
throw new ArgumentNullException("entity");
this._context.SaveChanges();
}
catch (DbEntityValidationException dbEx)
{
var msg = string.Empty;
foreach (var validationErrors in dbEx.EntityValidationErrors)
foreach (var validationError in validationErrors.ValidationErrors)
msg += Environment.NewLine + string.Format("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
var fail = new Exception(msg, dbEx);
//Debug.WriteLine(fail.Message, fail);
throw fail;
}
}
}
有什么问题?
【问题讨论】:
-
我们需要知道_productViewDetails.Update(productDetails);中的代码是什么
-
你的Id PK和autocincrement吗?应该是,如果是,你如何更新Id然后
-
我已将PK设置为Id,并且在ProductDetails表中也启用了自动增量属性。但是调用UpdateData方法后仍然没有更新记录。