变形金刚,你叫什么名字?我不使用Java有关系吗。公式是SQL2。我假设您已经为不同的表设置了类,那么选项2是很好的选项3。Transformers.AliasToBean()继承了Hibernate的名称,但它是一个NHibernate类,可以将别名映射
变形金刚,你叫什么名字?我不使用Java有关系吗。公式是SQL2。我假设您已经为不同的表设置了类,那么选项2是很好的选项3。Transformers.AliasToBean()继承了Hibernate的名称,但它是一个NHibernate类,可以将别名映射,nhibernate,nhibernate-mapping,one-to-many,many-to-one,Nhibernate,Nhibernate Mapping,One To Many,Many To One,变形金刚,你叫什么名字?我不使用Java有关系吗。公式是SQL2。我假设您已经为不同的表设置了类,那么选项2是很好的选项3。Transformers.AliasToBean()继承了Hibernate的名称,但它是一个NHibernate类,可以将别名映射到属性Automapper很棒。我同意。这也要求除了ProductDTO之外,我还有Product、Language和ProductTranslation类,并且有(最少的)代码来调用AutoMapper来转换模式。我的问题是,在NHibern
变形金刚,你叫什么名字?我不使用Java有关系吗。公式是SQL2。我假设您已经为不同的表设置了类,那么选项2是很好的选项3。Transformers.AliasToBean()继承了Hibernate的名称,但它是一个NHibernate类,可以将别名映射到属性Automapper很棒。我同意。这也要求除了ProductDTO之外,我还有Product、Language和ProductTranslation类,并且有(最少的)代码来调用AutoMapper来转换模式。我的问题是,在NHibernate中有没有办法将3个表之间的关系映射到一个类(实体)中?这是可能的吗?如果您没有已经映射的单个类,automapper确实需要比单个NH映射更多的工作。在这种情况下,您应该尝试Firos answer.AutoMapper中的一个选项。我同意。这也要求除了ProductDTO之外,我还有Product、Language和ProductTranslation类,并且有(最少的)代码来调用AutoMapper来转换模式。我的问题是,在NHibernate中有没有办法将3个表之间的关系映射到一个类(实体)中?这是可能的吗?如果您没有已经映射的单个类,automapper确实需要比单个NH映射更多的工作。在这种情况下,您应该尝试Firos答案中的一个选项。
// FluentNHibernate Mapping
public class ProductTranslationDtoMap : ClassMap<ProductTranslationDto>
{
public ProductTranslationDtoMap()
{
ReadOnly();
Table(" ProductTranslation");
Id(x => x.Id, "ProductTranslationId");
Map(x => x.Language).Formula("(SELECT l.LanguageName FROM Language l WHERE l.LanguageId = LanguageId)"); // simple and highly portable sql formula
Map(x => x.LocalName);
Map(x => x.LocalDescription);
Map(x => x.Price).Formula("(SELECT p.Price FROM Products p WHERE p.ProductId = ProductId)");
}
}
Product prod = null;
Language lang = null;
TranslationDto alias = null;
var results = session.QueryOver<ProductTranslation>()
.JoinAlias(pt => pt.Language, () => lang)
.JoinAlias(pt => pt.Product, () => prod)
.SelectList(list => list
.Select(pt => pt.Id).WithAlias(() => alias.ProductTranslationId)
.Select(() => lang.Name).WithAlias(() => alias.Language)
...)
.TransformUsing(Transformers.AliasToBean<TranslationDto>())
.List<TranslationDto>();