Subsonic 从枚举表填充字段

Subsonic 从枚举表填充字段,subsonic,Subsonic,我有下列表格 实体 id、名称、类别id 21,“废话”,1 实体类别(枚举表) id、名称 1.“新废话” 我在Entities->categoryid和EntityCategories->id之间有FK关系 我已经为这两者生成了亚音速类,也为实体生成了相应的模型对象 类实体{ID,Name,CategoryName} 我正在尝试返回填充类别名称的Model.Entity类型,即 public Entity GetEntityByName(string name){ return new

我有下列表格

实体
id、名称、类别id
21,“废话”,1

实体类别(枚举表)
id、名称
1.“新废话”

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

我已经为这两者生成了亚音速类,也为实体生成了相应的模型对象
类实体{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>();
公共实体GetEntityByName(字符串名称){ 还新 挑选( Entity.IdColumn, Entity.NameColumn, EntityCategory.NameColumn) .From(Entity.Schema) .InnerJoin(表.EntityCategory) .Where(Entity.NameColumn).IsEqualTo(name) .ExecuteSingle();
不用说,这不起作用。我实际上得到了一个Model.Entity,其Entity.Name设置为EntityCategoryName。

如果您使用亚音速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;
   }
}