|
//---------------------------------------------------------------------
// <copyright file="DbSetClause.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//
// @owner Microsoft
// @backupOwner Microsoft
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees.Internal;
using System.Data.Common.Utils;
using System.Diagnostics;
namespace System.Data.Common.CommandTrees
{
/// <summary>
/// Specifies a clause in a modification operation setting the value of a property.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public sealed class DbSetClause : DbModificationClause
{
private DbExpression _prop;
private DbExpression _val;
internal DbSetClause(DbExpression targetProperty, DbExpression sourceValue)
: base()
{
EntityUtil.CheckArgumentNull(targetProperty, "targetProperty");
EntityUtil.CheckArgumentNull(sourceValue, "sourceValue");
_prop = targetProperty;
_val = sourceValue;
}
/// <summary>
/// Gets an <see cref="DbExpression"/> that specifies the property that should be updated.
/// </summary>
/// <remarks>
/// Constrained to be a <see cref="DbPropertyExpression"/>.
/// </remarks>
public DbExpression Property
{
get
{
return _prop;
}
}
/// <summary>
/// Gets an <see cref="DbExpression"/> that specifies the new value with which to update the property.
/// </summary>
/// <remarks>
/// Constrained to be a <see cref="DbConstantExpression"/> or <see cref="DbNullExpression"/>
/// </remarks>
public DbExpression Value
{
get
{
return _val;
}
}
internal override void DumpStructure(ExpressionDumper dumper)
{
dumper.Begin("DbSetClause");
if (null != this.Property)
{
dumper.Dump(this.Property, "Property");
}
if (null != this.Value)
{
dumper.Dump(this.Value, "Value");
}
dumper.End("DbSetClause");
}
internal override TreeNode Print(DbExpressionVisitor<TreeNode> visitor)
{
TreeNode node = new TreeNode("DbSetClause");
if (null != this.Property)
{
node.Children.Add(new TreeNode("Property", this.Property.Accept(visitor)));
}
if (null != this.Value)
{
node.Children.Add(new TreeNode("Value", this.Value.Accept(visitor)));
}
return node;
}
}
}
|