llo*_*ono 3 c# mapping nhibernate fluent inner-join
我有3张桌子(Master,Imagen,Linea):
Master
public virtual int Id { get; private set; }
public virtual Imagen imagen { get; set; }
Imagen
public virtual int Id { get; private set; }
public virtual Linea linea { get; set; }
Linea
public virtual int Id { get; private set; }
public virtual String Nombre { get; set; }
Run Code Online (Sandbox Code Playgroud)
我需要这样的查询:
SELECT * FROM dbo.Master
INNER JOIN dbo.Imagen ON dbo.Master.imagen_id = dbo.Imagen.Id
INNER JOIN dbo.Linea ON dbo.Imagen.linea_id = dbo.Linea.Id
WHERE dbo.Linea_Id = 5
Run Code Online (Sandbox Code Playgroud)
但我不知道如何告诉Fluent Nhibernate使用automapper创建此查询.到目前为止,我试过这个:
ICriteria c = session.CreateCriteria(typeof(Master))
.CreateAlias("dbo.Imagen", "img", JoinType.InnerJoin)
.Add(Restrictions.Eq("img.linea_id", id_linea));
return c.List<Master>();
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:无法解析属性:dbo:ImageManager.Model.Entity.Master
关于如何进行内部加入的任何想法?提前致谢
首先,我将从dbo.Imagen中删除dbo.使用ICriteria接口,您需要考虑对象而不是数据库表,即使可能存在对象到表和属性到列的一对一映射.
编辑:
另一种选择是使用QueryOver Lambda语法.
var list = session.QueryOver<Master>()
.JoinQueryOver(master => master.imagen)
.Where(imagen => imagen.linea.Id == 5)
.List();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14536 次 |
| 最近记录: |