标签: nhibernate

流畅的NHibernate:如何创建一对多双向映射?

基本问题:如何在Fluent NHibernate中创建双向一对多地图?

细节:

我有一个有很多孩子的父对象.在我的情况下,孩子没有父母,所以在数据库中,我想外键的母体有NOT NULL约束是没有意义的.我从Fluent NHibernate映射自动生成我的数据库.

我的父母有很多子对象,如下所示:

public class Summary
{
   public int id {get; protected set;}

   public IList<Detail> Details {get; protected set;}
}

public  class Detail
{
   public int id {get; protected set;}

   public string ItemName {get; set;}

  /* public Summary Owner {get; protected set;} */ //I think this might be needed for bidirectional mapping?
}
Run Code Online (Sandbox Code Playgroud)

这是我开始的映射:

public class SummaryMap : ClassMap<Summary>
{
    public SummaryMap()
    {
        Id(x => x.ID);

        HasMany<Detail>(x => x.Details);
    }
}

public class DetailMap : …
Run Code Online (Sandbox Code Playgroud)

nhibernate nhibernate-mapping fluent-nhibernate

44
推荐指数
1
解决办法
3万
查看次数

Linq for NHibernate和fetch模式的急切加载

有没有办法使用linq for nhibernate将fetchmode设置为渴望多个对象.似乎有一种扩展方法,它只允许我设置一个对象.但是我需要为多个对象设置它.这可能吗?谢谢

linq nhibernate eager fetch

44
推荐指数
3
解决办法
2万
查看次数

使用NHibernate 3.0 QueryOver或LINQ提供程序进行权衡

与使用QueryOver语法相比,我没有找到与NHibernate 3.0 LINQ Provider支持的内容的明确比较.从表面上看,似乎有两个很大的努力分为两个非常相似的东西.

使用每种产品有哪些关键的权衡取舍?

linq nhibernate

44
推荐指数
3
解决办法
7771
查看次数

什么是NHibernate?

作为我上一个问题的后续跟进.我是一名ASP.NET程序员,我想知道NHibernate如何帮助我更轻松,更快地完成工作.假装我对NHibernate一无所知.它是什么,它能为我做什么?

database asp.net nhibernate

43
推荐指数
2
解决办法
2万
查看次数

101设置nhibernate的教程?

我正在寻找关于设置nhibernate的教程.似乎很少有,但大多数是用胡言乱语写的,或者是一个非常古老的版本.

任何好的资源,甚至包括流畅或代码配置安装?

nhibernate fluent-interface

41
推荐指数
2
解决办法
3万
查看次数

如何查看nHibernate生成的SQL?

如何查看nHibernate生成的SQL?版本1.2

nhibernate

41
推荐指数
5
解决办法
3万
查看次数

什么应该是NHibernate会话的生命周期?

我是NHibernate的新手,在过早关闭会话时遇到了一些问题.我通过重用会话而不是每个事务打开一个会话来暂时解决了这个问题.但是,我的印象是,每次需要时打开会话都是会话生命周期管理的推荐方法.没有?

所以; 推荐的会话方式是什么?他们的一生应该是什么?一次会议交易?一个单一的会议来处理一切?或者是什么?

编辑:

请注意,我的应用程序体系结构是与服务器端服务通信的桌面应用程序,这是使用NHibernate + Fluent进行的所有数据库处理.(如果这有任何区别......)

.net nhibernate session lifetime

41
推荐指数
3
解决办法
8706
查看次数

如何使用NHibernate QueryOver重新创建这个复杂的SQL查询?

想象一下以下(简化)数据库布局: 数据库布局

我们有许多"假期"记录,涉及在特定日期前往特定住宿等.

我想从数据库中提取每个住宿的"最佳"假期(即最低价格),给定一组搜索标准(例如持续时间,出发机场等).

将有多个具有相同价格的记录,因此我们需要选择保存(降序),然后按出发日期升序.

我可以写SQL来做这个看起来像这样(我不是说这必然是最优化的方式):

SELECT *
FROM Holiday h1 INNER JOIN (

    SELECT  h2.HolidayID,
        h2.AccommodationID,
        ROW_NUMBER() OVER (
            PARTITION BY h2.AccommodationID
            ORDER BY OfferSaving DESC
        ) AS RowNum
    FROM Holiday h2 INNER JOIN (

        SELECT  AccommodationID,
            MIN(price) as MinPrice
        FROM Holiday
        WHERE TradeNameID = 58001
        /*** Other Criteria Here ***/
        GROUP BY AccommodationID

    ) mp
    ON mp.AccommodationID = h2.AccommodationID
    AND mp.MinPrice = h2.price
    WHERE TradeNameID = 58001
    /*** Other Criteria Here ***/

) x on h1.HolidayID = x.HolidayID and …
Run Code Online (Sandbox Code Playgroud)

nhibernate subquery queryover

41
推荐指数
1
解决办法
2192
查看次数

为长文本字符串覆盖流畅的NHibernate nvarchar(MAX)不是nvarchar(255)

当你在流畅的NHibernate中设置字符串值时,它会将数据库值设置为Nvarchar(255),我需要存储相当多的基于用户输入的长字符串,而255是不切实际的.

只是为了添加这个是自动播放器的问题,因为我使用流畅的NHibernate来构建数据库.

c# nhibernate fluent-nhibernate automapping sharp-architecture

40
推荐指数
3
解决办法
2万
查看次数

字符串值的长度超过映射/参数中配置的长度

我试图将一些非常长的文本插入到字符串prop中 - 它与LinqToSql完全一致,现在我已切换到NHibernate并希望保存相同的实体,但nHibernate会抛出上述异常.

我怎样才能解决这个问题?

最初我的道具被定义为:

        Map(x => x.Content, "fT_Content").Nullable();
        Map(x => x.Fields, "fT_Fields").Nullable();
Run Code Online (Sandbox Code Playgroud)

现在他们是:这有效,但为什么我必须这样做?

        Map(x => x.Content, "fT_Content").CustomSqlType("nvarchar(max)").Length(Int32.MaxValue).Nullable();
        Map(x => x.Fields, "fT_Fields").CustomSqlType("nvarchar(max)").Length(Int32.MaxValue).Nullable();
Run Code Online (Sandbox Code Playgroud)

注意:我使用nuget有最新的nhibernate.

对于ref,这里是字段:

    public virtual string Content
    {
        get;
        set;
    }

    public virtual string Fields
    {
        get;
        set;
    }
Run Code Online (Sandbox Code Playgroud)

我想避免去生产,突然插入停止在这张桌子上工作....

nhibernate fluent-nhibernate

40
推荐指数
3
解决办法
3万
查看次数