星期三, 6月 17, 2009

用 Entity Framework 去抓取 EDM 的 class 和 property

常常有需要動態去知道 SQL 的 schema, 應為這樣我們才有機會把我們的程式寫的更活更抽象, 在傳統的方法可以參考我朋友puma的"利用SQL指令找出資料庫的資料表,資料表的欄位名,資料表的PK欄位"這篇文章來抓到想到的東西, 如果有在使用Entity Framework 的人來說..可以用下面這一段程式來讀取..

using (NORTHWNDModel.NORTHWNDEntities db = new NORTHWNDModel.NORTHWNDEntities())
{
var aaaa = db.MetadataWorkspace.GetItems(DataSpace.CSpace)
.Where(a => a.BuiltInTypeKind == BuiltInTypeKind.EntityType);
foreach (EntityType a in aaaa)
{
Response.Write("class: " + a.FullName + "<br />");

foreach (var b in a.Properties)
{
Response.Write("-----" + b.Name + ", " + b.TypeUsage.EdmType.Name + "<br />");
}
}
}

結果是這樣..

image

參考:

沒有留言: