linq 中未更新的字段列的字节类型

本文关键字:字节 类型 字段 linq 更新 | 更新日期: 2023-09-27 18:36:15

sql server中"产品"表中名为Favorite(tinyint)的列。我已经生成了实体,它被转换为实体,如下所示,

public class Products
{
   ----- Other Fields ------
    public byte Favorite { get; set; }
}

我正在尝试通过下面给定的代码更新实体,

 using (ADataContext dataContext = new ADataContext())
 {
     var product = dataContext.Products.Where(p => p.Id == 10).FirstOrDefault();
     product.Favorite = (byte)EnumFavoriteType.MostFavorite;
     dataContext.SubmitChanges();
 }

它没有更新并显示错误

"类型为'System.Data.Linq.ChangeConflictException'的异常 发生在"A.Service.dll中,但未在用户代码中处理"。"行不 发现或更改。

linq 中未更新的字段列的字节类型

我通过以下方式更改实体类并添加了Favorite属性PropertyChanged

public class Products
{
  public byte Favorite { get; set; }
        {
            get
            {
                return this.Favorite;
            }
            set
            {
                if ((this.Favorite != value))
                {
                    this.OnFavoriteChanging(value);
                    this.SendPropertyChanged("Favorite");
                }
            }
        }
    partial void OnFavoriteChanging(byte value);
    protected virtual void SendPropertyChanged(String propertyName)
        {
            if ((this.PropertyChanged != null))
            {
                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
}

它对我来说效果很好。