2009-04-13 169 views
0

我有以下表填充字段

實體
ID,名稱,類別ID
21, 「等等」,1

EntityCategory(枚舉表)
ID ,名稱
1,「New Blahs」

我有一個FK之間的關係E ntities->類別ID和EntityCategories-> ID

我已生成亞音速類兩者以及相應的模型對象實體
類實體{ID,名稱,類別名稱}

我試圖返回填寫類別名稱的Model.Entity類型即

public Entity GetEntityByName(string name){ 
    return new 
    Select(
     Entity.IdColumn,  
     Entity.NameColumn, 
     EntityCategory.NameColumn) 
    .From(Entity.Schema) 
    .InnerJoin(Tables.EntityCategory) 
    .Where(Entity.NameColumn).IsEqualTo(name) 
    .ExecuteSingle<Model.Entity>(); 

不用說這不起作用。我實際上獲得了一個Entity.Name設置爲EntityCategoryName的Model.Entity。

回答

0

如果使用亞音速3.0你可以用投影做到這一點:

var result = from e in db.Entities 
where e.ID=1 
select new Entity{ 
    ID=e.ID, 
    name=e.Name, 
    CategoryName=(CategoryName)e.CategoryID 
} 

亞音速2.x中,我會說,可以很容易對自己,並與一個只讀枚舉擴展部分類:

public partial class Entity{ 
    public CategoryName{ 
    return (CategoryName)this.CategoryID; 
    } 
} 
+0

非常感謝。 – kjgilla 2009-04-13 20:54:35