标签: nhibernate-mapping-by-code

NHibernate 3.2 Loquacious API入门

我正在开始一个新项目,我想使用NHibernate 3.2.我知道它现在可以做类似于FluentNHibernate的事情,我想尝试一下.

但是我很难找到关于Loquacious API的文档.我已经看过关于如何配置ISessionFactory的博客 文章,但在此之后我就迷路了.我知道3.2 API正在快速发展,大约3到4个月的文章已经过时,但我正在寻找最新的信息.

我在哪里可以找到有关的资源:

  • 如何在不使用FluentNHibernate且不使用ConfORM的情况下设置NHibernate 3.2而不使用XML?

  • 如何注册映射?

  • 如何创建约定?

请记住,这与NHibernate 3.2(可能在上面)有关.如果映射和约定等任何概念不再适用,请您指出正确的方向吗?

我对NHibernate和FluentNHibernate有一些经验,因为我将它们用于一个小项目,但它并不是很复杂.

c# nhibernate nhibernate-mapping-by-code

26
推荐指数
2
解决办法
7209
查看次数

在查询上生成错误的列

我们在NHibernate中遇到间歇性问题,它偶尔会在SQL上生成一个错误列的查询.如果我们重新启动应用程序,则问题不再发生(有时需要多次重启).出现问题时,在该进程的生命周期内,它始终会为受影响的实体生成错误的SQL.它并不总是受影响的实体.

这是一个ASP.NET应用程序,其中SessionFactory是在Application_Start事件期间创建的.所有配置和映射都是通过代码完成的.

我们没有更多的想法如何测试或调试应用程序,我开始假设NHibernate中有一些错误,因为应用程序在重新启动时自行修复.任何想法/提示将不胜感激!

这是一个例子:

实体

namespace Example.Clinicas
{
    public partial class Clinica : Entidade   // Abstract base class that has a property Handle
    {
        public virtual string Ddd { get; set; }
        public virtual string Ddd2 { get; set; }
        public virtual long? Duracao { get; set; }
        public virtual string Numero { get; set; }
        public virtual string Numero2 { get; set; }
        public virtual string Prefixo { get; set; }
        public virtual string Prefixo2 { get; …
Run Code Online (Sandbox Code Playgroud)

.net c# sql nhibernate nhibernate-mapping-by-code

18
推荐指数
1
解决办法
1204
查看次数

NHibernate 3.2通过代码进行多对多映射

我正在努力学习NHibernate 3.2 built-in mapping by code api(不是 FluentNHibernate,也不是xml).你能帮我勾画出这些实体之间的多对多关系吗?

public class Post {
    public virtual Id { get; set; }
    public IList<Tag> Tags { get; set; }
}

public class Tag {
    public virtual Id { get; set; }
    public IList<Post> Posts { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的主要关键策略是:

Id( 
    t => t.Id, 
    t => { 
        t.Generator(Generators.HighLow, g => g.Params(new { max_low = 100 })); 
        t.Column(typeof(TEntity).Name + "Id"); 
    });
Run Code Online (Sandbox Code Playgroud)

我试试这个:

// TagMap : ClassMapping<Tag>
Bag(t => t.Posts, bag => …
Run Code Online (Sandbox Code Playgroud)

mapping nhibernate many-to-many nhibernate-3 nhibernate-mapping-by-code

10
推荐指数
1
解决办法
7884
查看次数

在NHIbernate中使用带有公式的属性映射

我试图将属性映射到另一个表的任意列.文档说公式可以是任意SQL,我看到的例子显示类似.

但是,SQL NHibernate生成的甚至不是有效的.公式中的整个SQL语句被注入SELECT语句的中间.

        Property(x => x.Content, map =>
            {
                map.Column("Content");
                map.Formula("select 'simple stuff' as 'Content'");
            });
Run Code Online (Sandbox Code Playgroud)

c# nhibernate properties nhibernate-mapping-by-code

8
推荐指数
1
解决办法
9587
查看次数

FluentNHibernate或端口到NHibernate的代码映射

我有几个项目使用NH和FNH生成映射(一些Fluent一些Automapped).我仍然需要一些bug和缺少的功能,但似乎FNH可能因为集成到NHibernate中的代码映射而死亡.

问题:有助于FNH或将映射迁移到代码映射或confORM并修复问题/实现功能吗?

nhibernate nhibernate-mapping fluent-nhibernate nhibernate-mapping-by-code fluent-nhibernate-mapping

7
推荐指数
2
解决办法
2351
查看次数

NHibernate - 强制转义表名

有没有关于如何在线使用这个(NHibernate.Criterion.IdentifierEqExpression)的好例子?我找不到任何东西.我对你应该传递给构造函数的内容感到有点困惑.

我传入一个1的int32,我一直认为我的测试应该基本上做一个"where id = 1"类型的查询,而不是用"where id =?"来爆发 和位置参数的东西.如果那不是应该传递给构造函数的......那是什么?

实际问题
当我查看SQL输出时,似乎工作正常,除了我的表名为User并且NHibernate没有像[User]那样封闭它.有什么方法可以强迫这个?

.net nhibernate nhibernate-mapping-by-code fluent-nhibernate-mapping

6
推荐指数
1
解决办法
2017
查看次数

通过代码实现 Nhibernate 一对一映射

当引用列不是第二个表上的主键列时,我试图找出一种在 nhibernate 中映射一对一关系的方法。

\n\n

例如考虑

\n\n
Person Table \n   PersonId (pk)\n   Name\n
Run Code Online (Sandbox Code Playgroud)\n\n

和

\n\n
Passport Table \n   PassportId (pk)\n   Country\n   PersonId\n
Run Code Online (Sandbox Code Playgroud)\n\n

这两个表在 PersonId 上具有一对一的关系。

\n\n

我的 Nhibernate 模型如下所示。

\n\n
public class Person\n{\n    public virtual int Id { get; set; }\n    public virtual string Name { get; set; }\n    public virtual Passport Passport { get; set; }\n}\n\npublic class Passport\n{\n    public virtual int Id { get; set; }\n    public virtual string Country { get; set; }\n    public virtual Person Person …
Run Code Online (Sandbox Code Playgroud)

c# sql nhibernate fluent-nhibernate nhibernate-mapping-by-code

6
推荐指数
1
解决办法
4883
查看次数

通过代码使用NHibernate映射:当IDENTITY_INSERT设置为OFF时,无法在表'DietUser'中为identity列插入显式值

花了一段时间才找到答案,以为我会分享爱情.


当使用NHibernate通过代码与SQL Server的新映射时,我无法保存实体.保存实体时,将抛出System.Data.SqlClient.SqlException并显示以下消息(减去表名):

"当IDENTITY_INSERT设置为OFF时,无法在表'DietUser'中为标识列插入显式值."

我的表使用身份ID,实体和映射看起来像这样:

public class User
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Username { get; set; }
    public virtual string Password { get; set; }
    public virtual short DailyPoints { get; set; }
}

public class UserMapping : ClassMapping<User>
{
    public UserMapping()
    {
        Id(x => x.Id);
        Property(x => x.Name);
        Property(x => x.Username);
        Property(x => x.Password);
        Property(x => x.DailyPoints);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道如何使用XML映射来映射它,但我希望尽可能使用代码内置的映射.

sql-server nhibernate nhibernate-mapping nhibernate-mapping-by-code

5
推荐指数
1
解决办法
5343
查看次数

如何使用NHibernate 3.2的NHibernate Mapping-By-Code功能映射ntext?

我需要使用NHibernate 3.2中的代码映射映射来映射表的ntext列,这样它就不会被截断为4000个字符.

在以下示例中,我要更改哪些内容?"Notes"是在sql表中具有ntext类型的属性:

属性(emp => emp.Notes);

注意:请不要将它与流畅的NHibernate或hbm文件映射混合使用.

nhibernate truncate ntext nhibernate-mapping nhibernate-mapping-by-code

5
推荐指数
1
解决办法
2353
查看次数

json.net 在序列化期间忽略 nhibernate 代理对象

我可以使用以下代码序列化代理对象:

public class NHibernateContractResolver : DefaultContractResolver
{
    protected override JsonContract CreateContract(Type objectType)
    {
        if (typeof(NHibernate.Proxy.INHibernateProxy).IsAssignableFrom(objectType))
            return base.CreateContract(objectType.BaseType);
        return base.CreateContract(objectType);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能在序列化过程中JSON.NET忽略对象呢?NHibernate Proxy

我面临的问题是,父对象正在获取 1000 个子对象,因为我只想为父对象发送 JSON,所以我想忽略代理对象并仅获取急切加载的关系。

如果我对上面的代码进行注释,则会收到 JSON.NET 无法序列化代理对象的错误。

请帮忙!

nhibernate json.net nhibernate-mapping-by-code

5
推荐指数
1
解决办法
1828
查看次数