2009-04-13 225 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