ASP.NET Podcast Show #127 - Dynamic Data
Original Url: http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/11/09/asp-net-podcast-show-127-dynamic-data.aspx
Show Notes:
- Craig Shoemaker.
- Rachel Appel.
- Dynamic Data.
- CRUD.
- Rules and Validation.
Source Code:
Global.asax:
model.RegisterContext(typeof(db35sp1Entities), new ContextConfiguration() { ScaffoldAllTables = true });
Metadata class:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace Dynamic_Data
{
[DisplayColumn("Name")]
[MetadataType(typeof(tbItemMetaData))]
public partial class tbItem
{
private class tbItemMetaData
{
[DisplayName("Item Display Name")]
[StringLength(30)]
[Required(ErrorMessage="Item name is required.")]
public object Name { get; set; }
[DisplayFormat(DataFormatString="{0:c}")]
[Range(0, 500, ErrorMessage="Standard Cost should be between {1} and {2}.")]
public object Price { get; set; }
}
// Note the naming convention of On X Changing and the nullable value.
partial void OnPriceChanging(decimal? value)
{
if (value < 0)
{
throw (new ValidationException("Price must be positive, afterall we aren't paying you to take it."));
}
}
}
[MetadataType(typeof(tbOrderMetaData))]
public partial class tbOrder
{
private class tbOrderMetaData
{
[ScaffoldColumn(true)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public object DateUpdated { get; set; }
}
}
}