예제 #1
0
        public void Save(ref Comment obj)
        {
            if (obj != null)
            {
                if (obj.Id == 0)
                {
                    // Add to collection
                    context.Comments.Add(obj);
                }
                else
                {
                    // Map from original record
                    LoadOriginalFromDbAndMap(ref obj);

                    // Attach to collection
                    context.Comments.Attach(obj);
                    context.Entry(obj).State = System.Data.EntityState.Modified;
                }

                // Commit changes
                var utility = new DbUtilities();
                utility.SaveWithExpectedSuccess(context.SaveChanges());
            }
        }
예제 #2
0
        private void LoadOriginalFromDbAndMap(ref Comment obj)
        {
            // Use utility for easier readability
            var utility = new DbUtilities();

            // Get original
            var original = Get(obj.Id);

            // Map if the value has changed
            original.ResourceId = utility.Map(original.ResourceId, obj.ResourceId);
            original.ContributorGuid = utility.Map(original.ContributorGuid, obj.ContributorGuid);
            original.Text = utility.Map(original.Text, obj.Text);

            // Set obj to new merged values (original)
            obj = original;
        }