- Main Features
-
Bulk Options
- Bulk Options
- Audit
- Batch
-
Column
- Column Input Expression
- Column Output Expression
- Column InputOutput Expression
- Column PrimaryKey Expression
- Column Synchronize DeleteKey Subset Expression
- Ignore OnInsert Expression
- Ignore OnMergeInsert Expression
- Ignore OnMergeMatched AndCondition Expression
- Ignore OnMergeMatched AndOneNotCondition Expression
- Ignore OnMergeUpdate Expression
- Ignore OnSynchronizeInsert Expression
- Ignore OnSynchronizeMatched AndCondition Expression
- Ignore OnSynchronizeMatched AndOneNotCondition Expression
- Ignore OnSynchronizeUpdate Expression
- Ignore OnUpdate Expression
- Ignore OnUpdateMatched AndCondition Expression
- Ignore OnUpdateMatched AndOneNotCondition Expression
- MergeMatched AndCondition Expression
- MergeMatched AndNotCondition Expression
- SynchronizeMatched AndCondition Expression
- SynchronizeMatched AndOneNotCondition Expression
- UpdateMatched AndCondition Expression
- UpdateMatched AndOneNotCondition Expression
- Coalesce Destination OnMergeUpdate Expression
- Coalesce Destination OnUpdate Expression
- Coalesce OnMergeUpdate Expression
- Coalesce OnUpdate Expression
- Context Factory
- Execute Event
- ExplicitValueResolutionMode
- Identity
- Include Graph
- ForceValueGeneratedStrategy
- Key
- Logging
- Rows Affected
- Temporary Table
- Transaction
- Transient Error
- SQL Server
- Coalesce
- Coalesce Destination
- Delete Matched and Condition
- Delete Matched and one NOT Condition
- Delete Matched and Formula
- Matched and Condition
- Matched and one NOT Condition
- Matched and Formula
- Batch Operations
- Events
- Utilities
- C# Eval Expression
- Articles
- Troubleshooting
- Release Notes
Entity Framework Extensions Coalesce Destination OnMergeUpdate Expression
Description
The CoalesceDestinationOnMergeUpdateExpression
is the inverse of CoalesceOnMergeUpdateExpression
, it allows you to update the new value if the database value is null otherwise it keeps the database value when BulkMerge
method is executed.
The following example will update only those columns for which the value is null in the database for the specified properties.
using (var context = new EntityContext()) { var list = context.Customers.ToList(); list.ForEach(x => { x.Name += "_Updated"; x.Description += "Add Description"; x.IsActive = false; }); list.Add(new Customer() { Name ="Customer_C", Description = "Description of C", IsActive = false}); context.BulkMerge(list, options => { options.CoalesceDestinationOnMergeUpdateExpression = c => new {c.CustomerID, c.Name, c.Description}; }); }
- It will update the value in the
Description
column because the database value is null. - The value for
Name
is not null so it will not update theName
column. - The
IsActive
will also be updated, because it is not specified inCoalesceDestinationOnMergeUpdateExpression
.
Author: ZZZ Projects