Using Entity Framework to INSERT and UPDATE data

EF的Insert, Update範例程式

INSERT example:

public bool Insert(YourModel model, ref string fileName)
{
    using (StarBackendEntities db = new StarBackendEntities())
    {
        try
        {
            var maxNo = new BaseRepo().getMaxNo("KIND_DATA");   // 取得最大ID
 
            if (maxNo != null)
            {
                KIND_DATA data = new KIND_DATA();
 
                // 設定新資料
                data.Kind_ID = (int)maxNo;
                data.Kind_NAME = fileName;
                data.Page_ID = model.PhotoTextProductItem.Page_ID;
                data.TypeID = model.PhotoTextProductItem.TypeID;
                data.PageTag = 1;
 
                fileName = data.Kind_ID.ToString("00000") + ((int)data.Page_ID).ToString("00000") + DateTime.Now.ToString("yyyyMMddHHmmss") + "." + fileName.Split('.').Last();
 
                data.PhotoUrl = "/Content/images/banner/" + fileName;
                data.PhotoName = fileName;
                data.DisplayWords = model.PhotoTextProductItem.DisplayWords;
                data.PhotoProductId = model.PhotoTextProductItem.PhotoProductId;
                data.WritingProductId = model.PhotoTextProductItem.WritingProductId;
                data.WebUrl = model.PhotoTextProductItem.WebUrl;
                data.Weight = model.PhotoTextProductItem.Weight;
                data.OnlineDate = model.PhotoTextProductItem.OnlineDate;
                data.OfflineDate = model.PhotoTextProductItem.OfflineDate;
                data.Status = getStatus(data.OnlineDate, data.OfflineDate);
                data.CreateTime = DateTime.Now;
                data.CreateUser = "User";
 
                // 寫入資料庫
                db.KIND_DATA.Add(data);
                db.SaveChanges();
 
                return true;
            }
            else
                return false;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}

UPDATE example:

public bool Update(YourModel model, ref string fileName)
{
    using (StarBackendEntities db = new StarBackendEntities())
    {
        try
        {
            var original = db.KIND_DATA.Find(model.PhotoTextProductItem.Kind_ID);
 
            // 確認有該筆資料
            if (original != null)
            {
                // 取得資料庫原資料
                var data = db.KIND_DATA.SingleOrDefault(x => x.Kind_ID == model.PhotoTextProductItem.Kind_ID);
 
                // 圖片有變更才修改資料庫的圖片名稱
                if (!string.IsNullOrWhiteSpace(fileName))
                {
                    // 設定新的檔案名稱
                    fileName = data.Kind_ID.ToString("00000") + ((int)data.Page_ID).ToString("00000") + DateTime.Now.ToString("yyyyMMddHHmmss") + "." + fileName.Split('.').Last();
                    data.PhotoUrl = "/Content/images/banner/" + fileName;
                    data.PhotoName = fileName;
                }
 
                // 設定更新資料
                data.PhotoProductId = model.PhotoTextProductItem.PhotoProductId;
                data.WritingProductId = model.PhotoTextProductItem.WritingProductId;
                data.WebUrl = model.PhotoTextProductItem.WebUrl;
                data.DisplayWords = model.PhotoTextProductItem.DisplayWords;
                data.Weight = model.PhotoTextProductItem.Weight;
                data.OnlineDate = model.PhotoTextProductItem.OnlineDate;
                data.OfflineDate = model.PhotoTextProductItem.OfflineDate;
                data.Status = getStatus(data.OnlineDate, data.OfflineDate);
                data.UpdateTime = DateTime.Now;
                data.UpdateUser = "User";
 
                // 寫入資料庫
                db.Entry(original).CurrentValues.SetValues(data);
                db.SaveChanges();
 
                return true;
            }
            else
                return false;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}