【发布时间】:2015-11-30 07:31:42
【问题描述】:
我在 NHibernate 中执行连接查询时遇到问题。 我有以下表格:
BOOKS:
ID, NAME, BOOK_TYPE, AUTHOR_ID
AUTHORS:
ID, FIRST_NAME, LAST_NAME, BIRTH_DATE
我想在 Fluent NHibernate 中执行以下 sql 查询:
SELECT AUTHORS.ID, COUNT(BOOKS.ID)
FROM AUTHORS
INNER JOIN BOOKS
ON AUTHORS.ID = BOOKS.AUTHOR_ID
GROUP BY AUTHORS.ID;
类:
public class Book
{
public virtual int id{get; set;}
public virtual string Name{get; set;}
public virtual int booktype{get; set;}
public virtual Author author{get; set;}
}
public class Author
{
public virtual int id{get; set;}
public virtual string FirstName{get; set;}
public virtual string LastName{get; set;}
public virtual DateTime BirthDate{get; set;}
public virtual IList<Book> Books{get; set;}
}
这是我尝试过的:
GraphDTO graph = null;
Session.QueryOver<Book>()
.SelectList(list => list
.SelectGroup(x => x.Author.Id).WithAlias(() => graph.Id)
.SelectCount(x => x.Id).WithAlias(() => graph.BooksNum))
.TransformUsing(Transformers.AliasToBean<GraphDTO>())
.List<GraphDTO>();
【问题讨论】:
-
请用您的班级和映射定义更新您的问题
-
@kayess 发布了课程。
标签: c# sql nhibernate fluent-nhibernate queryover