从枚举表填充字段

时间:2009-04-13 18:18:08

标签: subsonic

我有以下表格

实体
ID,名称,类别ID
21, “等等”,1

EntityCategory (枚举表)
id,名称
1,“新布拉斯”

我在实体之间有一个FK关系 - > categoryid和EntityCategories-> id

我已为两者生成SubSonic类以及Entity的相应Model对象
类实体{ID,Name,CategoryName}

我正在尝试返回类型名称填充的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>();

毋庸置疑,这不起作用。我实际上获得了一个Model.Entity,Entity.Name设置为EntityCategoryName。

1 个答案:

答案 0 :(得分:0)

如果您使用SubSonic 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
}

使用SubSonic 2.x,我会说让自己轻松一下,并使用只读枚举扩展部分类:

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