public DataView GetNewFromTemplate( int dataViewId )
{
var item = this.Queryable()
.AsNoTracking()
.Include( x => x.DataViewFilter )
.FirstOrDefault( x => x.Id == dataViewId );
if ( item == null )
{
throw new Exception( string.Format( "GetNewFromTemplate method failed. Template Data View ID \"{0}\" could not be found.", dataViewId ) );
}
// Deep-clone the Data View and reset the properties that connect it to the permanent store.
var newItem = (DataView)( item.Clone( true ) );
newItem.Id = 0;
newItem.Guid = Guid.NewGuid();
newItem.ForeignId = null;
newItem.ForeignGuid = null;
newItem.ForeignKey = null;
newItem.DataViewFilterId = 0;
this.ResetPermanentStoreIdentifiers( newItem.DataViewFilter );
return newItem;
}