public static TableItem Create( dynamic entity, string partitionKey, string rowKey, ReservedPropertyBehavior reservedPropertyBehavior = ReservedPropertyBehavior.Throw )
{
bool throwOnReservedPropertyName = reservedPropertyBehavior == ReservedPropertyBehavior.Throw;
TableItem item = entity is IDynamicMetaObjectProvider ?
CreateFromDynamicMetaObject( entity, throwOnReservedPropertyName ) :
CreateFromType( entity, throwOnReservedPropertyName );
if ( item.PartitionKey != null && item.PartitionKey != partitionKey )
{
throw new ArgumentException( string.Format( "Entity defines PartitionKey: {0} but it conflicts with partitionKey argument: {1}", item.PartitionKey, partitionKey ) );
}
item.PartitionKey = partitionKey;
if ( item.RowKey != null && item.RowKey != rowKey )
{
throw new ArgumentException( string.Format( "Entity defines RowKey: {0} but it conflicts with rowKey argument: {1}", item.RowKey, rowKey ) );
}
item.RowKey = rowKey;
return item;
}