0

我有以下表格

实体
id,name,categoryid
21,"Blah",1

EntityCategory (枚举表)
id, name
1,"New Blahs"

我在 Entity->categoryid 和 EntityCategories->id 之间有 FK 关系

我已经为实体类 Entity{ID,Name,CategoryName}生成了 SubSonic 类以及相应的模型对象

我正在尝试返回填充了类别名称的 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。

4

1 回答 1

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;
   }
}
于 2009-04-13T19:49:04.053 回答