我有一个实体类,例如
public class Title{
public virtual int Id { get; set; }
public virtual string Isin { get; set; }
public virtual string Note { get; set; }
public virtual string Description { get; set; }
}
两个流畅的hibernate映射类,每个类都有一个entity-name属性:
public class ViewTitleMap:ClassMap<Title>{
public ViewTitleMap(){
EntityName("ViewTitle");
Schema("consolidated");
Table("vTitles");
LazyLoad();
Id(_ => _.Id).GeneratedBy.Identity();
Map(_ => _.Description).Length(10).Nullable().CustomType("AnsiString");
Map(_ => _.Isin).Length(12).Not.Nullable();
Map(_ => _.Note).Length(12).Nullable();
}
}
和
public class TitleMap:ClassMap<Title>
{
public TitleMap()
{
EntityName("title");
Schema("dbo");
Table("Title");
LazyLoad();
Id(_ => _.Id).GeneratedBy.Identity().Column("Id");
Map(_ => _.Description).Column("Description").Length(10).Nullable();
Map(_ => _.Isin).Length(12).Column("Isin").Not.Nullable();
Map(_ => _.Note).Column("Note").Length(12).Nullable();
}
}
是否可以定义“默认”映射(例如具有实体名称“title”的映射类),因此当我查询时,我不需要编写我想要使用的实体名称(反之,只在必要时放置实体名称?
E.g。 (以实体名称“title”作为默认映射映射类的前提)我不想每次都写这个
Title title = session.QueryOver<Title>("title").Where(_ =>_.Id == titleId).SingleOrDefault();
但仅
Title title = session.QueryOver<Title>.Where(_ =>_.Id == titleId).SingleOrDefault();
虽然我想用这个
Title title = session.QueryOver<Title>("ViewTitle").Where(_ =>_.Id == titleId).SingleOrDefault();
仅在特定情况下。这是因为“标题”实体的突出用法 - 映射“ViewTitle”
谢谢