我有以下表格
实体
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。
答案 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;
}
}