2
私はこのようになりますエンティティがあります。NHibernateは - AliasToBeanと協会
public class MyEntity {
public virtual int Id { get; set; }
public virtual string Name { get; set ; }
public virtual Role UserRole { get; set; }
}
のプロパティ「名前」マッピングされたプロパティが、「ID」と「のUserRole」されていません。私はこのようなカスタム条件を使用して、このクラスを移入します:
ICriteria c = Db.CreateCriteria<MyEntity>("m")
.CreateAlias("Role", "r")
.SetProjection(Projections.ProjectionList()
.Add(
Projections.SqlProjection(@"Name = case TypeId
when 2 then (select Name from tblOne where Id = EntityId)
when 4 then (select Name from tblTwo where Id = EntityId)
when 3 then (select Name from tblThree where Id = EntityId)
end", new string[] { "Name" }, new NHibernate.Type.IType[] { NHibernateUtil.String }))
.Add(Projections.Property("m.Id"), "Id")
.Add(Projections.Property("r.Id"), "UserRole.Id")
.Add(Projections.Property("r.Desc"), "UserRole.Desc")
.Add(Projections.Property("r.Permission"), "UserRole.Permission")
)
.SetResultTransformer(Transformers.AliasToBean<EntityPermission>());
しかし、私はこれを実行する場合に例外がスローされます「クラスに 『{UserRole.Id}』プロパティのセッターを見つけることができませんでした 『MyEntity』」 。
私の質問はaliastobeanサポートの関連付けではありませんし、もしそうなら、適切な構文は何ですか?