javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

variables

var

loops

iteration

std

c++-faq

git-checkout

generator

coroutine

spring-mvc

asp.net-什么是NHibernate?

作为我先前问题的跟进。 我是ASP.NET程序员,并且想知道NHibernate如何帮助我比以前更轻松,更快速地完成工作。 假装我对NHibernate一无所知。 这是什么,对我有什么用?

trans by 2020-08-03T03:04:57Z

流利的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?
}

这是我开始的映射:

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

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

public class DetailMap : ClassMap<Detail>
{
    public DetailMap()
    {
        Id(x => x.ID);

        Map(x => x.ItemName).CanNotBeNull();
    }
}

在详细信息表中,Summary_id应该不为Null,因为在我的如果没有将Detail对象附加到摘要对象。 但是,仅使用HasMany()映射会使Summary_id外键为空。

我在NHibernate文档([http://www.hibernate.org/hib_docs/nhibernate/html/collections.html)]中发现,“如果需要父级,则使用双向一对多关联”。

那么如何在Fluent NHibernate中创建双向一对多地图?

trans by 2020-07-26T13:29:11Z

使用NHibernate 3.0 QueryOver或LINQ提供的权衡

与使用QueryOver语法相比,我没有发现NHibernate 3.0 LINQ Provider支持的内容的明显比较。 从表面上看,似乎需要进行两次很大的努力才能将它们变成两个非常相似的事情。

使用它们的主要折衷是什么?

trans by 2020-07-23T14:30:45Z

Linq for NHibernate和预加载的获取模式

有没有一种方法可以将linq用于nhibernate将fetchmode设置为渴望多个对象。 似乎有一个expand方法,只允许我设置一个对象。 但是我需要为多个对象设置它。 这可能吗? 谢谢

trans by 2020-07-18T05:22:03Z

在NHibernate和Entity Framework之间进行选择?

NHibernate和Entity Framework 4.0的主要优点和缺点是什么?

(虽然标记了我的问题,但我注意到NHibernate标签比EF多。NHibernate是否更受欢迎?)

trans by 2020-07-08T20:13:41Z

哪种.NET数据类型最适合在NHibernate中映射NUMBER Oracle数据类型?

我已经看到了一些示例,其中在NHibernate项目中使用decimal映射到Oracle中的整数列。 现在,我在程序中使用了intlong

decimalint/long的优势是什么? 它表现更好吗?

trans by 2020-07-02T16:51:19Z

NHibernate一起使用QueryOver和WHERE IN

我会这样创建一个QueryOver

SELECT *
FROM Table
WHERE Field IN (1,2,3,4,5)

我尝试使用Contains方法,但是遇到了异常

“ System.Exception:无法识别的方法调用:System.String:Boolean Contains(System.String)”

这是我的代码

var qOver = _HibSession.QueryOver<MyModel>(() => baseModel)                                                                
  .JoinAlias(() => baseModel.Submodels, () => subModels)
  .Where(() => subModels.ID.Contains(IDsSubModels))
  .List<MyModel>();
trans by 2020-02-20T06:12:28Z

mvc mini profiler-在NHibern中使用MiniProfiler的数据库配置文件

在NHibernate中使用MiniProfiler的数据库分析的最简单方法是什么? 为了使探查器正常工作,我需要将NHibernate使用的ISession包装在Connection中。

我对NHibernate的内部知识不太熟悉,所以我不知道所有可扩展性点在哪里。 (我注意到NHibernate ISession具有Connection属性,但它是只读的。)

trans by 2020-02-16T11:50:21Z

如何使用nHibernate和QueryOver API获得不同的结果?

我有这种存储库方法

    public IList<Message> ListMessagesBy(string text, IList<Tag> tags, int pageIndex, out int count, out int pageSize)
    {
        pageSize = 10;
        var likeString = string.Format("%{0}%", text);
        var query = session.QueryOver<Message>()
            .Where(Restrictions.On<Message>(m => m.Text).IsLike(likeString) || 
            Restrictions.On<Message>(m => m.Fullname).IsLike(likeString));

        if (tags.Count > 0)
        {
            var tagIds = tags.Select(t => t.Id).ToList();
            query
                .JoinQueryOver<Tag>(m => m.Tags)
                .WhereRestrictionOn(t => t.Id).IsInG(tagIds);
        }            

        count = 0;
        if(pageIndex < 0)
        {
            count = query.ToRowCountQuery().FutureValue<int>().Value;
            pageIndex = 0;
        }
        return query.OrderBy(m => m.Created).Desc.Skip(pageIndex * pageSize).Take(pageSize).List();
    }

您提供了一个自由文本搜索字符串和一个标签列表。问题是,如果一条消息包含多个标签,则该消息将重复列出。我想要基于Message实体的不同结果。 我看过

Projections.Distinct

但这需要一个针对不同问题的属性列表。 此消息是我的实体根,最有一种方法可以在不提供所有实体属性的情况下获得此行为?

预先感谢,安德斯

trans by 2020-02-16T01:45:08Z

CodeGo.net> nHibernate的,不存在具有给定标识符的行

我对此有一个映射。

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Model.Entities" schema="etl" assembly="Model" default-lazy="false">
  <class name="Model.Entities.DataField, Model" table="mdm_field">
    <id name="FieldId" column="field_id" type="int">
      <generator class="native" />
    </id>
    <many-to-one name="KeyField" class="Model.Entities.Key, Model" column="field_id" />
  </class>
</hibernate-mapping>

现在在数据库中,mdm_field表中的field_id有时具有一个值,该值在相关的key_field表中不存在,因此基本上破坏了参照完整性。 因此,当我加载实体时,会出现错误“不存在具有给定标识符的行”。 我如何配置映射以在这种情况下使用,以便它不会在这种情况下消失。

trans by 2020-02-11T04:42:06Z

如何将Fluent NHibernate配置为将查询输出到跟踪或调试而不是控制台?

如何配置Fluent NHibernate将查询输出到跟踪或调试而不是控制台?我正在使用MsSqlConfiguration.MsSql2008.ShowSql(),但它没有参数,在Google上找不到任何内容。

trans by 2020-02-08T16:22:58Z

nhibernate-queryover和(x代表'a'或y代表'a')

你好当我使用queryover API时,是否有任何优雅的方式将“ like”和“ or”组合在一起?对于“喜欢”,有一些类似的东西:

 query.WhereRestrictionOn(x=>x.Code).IsLike(codePart)

对于“或”,我可以做类似的事情:

query.Where( x=>x.Code == codePart || x.Description== codePart)

但是如何创建这样的查询:

选择* from n其中代码像   '%abc%'或类似'%abc%'的描述

trans by 2020-01-27T09:23:01Z

禁用NHibernate日志记录

我有一个空的app.config文件,但是我仍然得到NHibernate调试日志

NHibernate: SELECT this_.LogID as LogID71_0_, this_.Level as Level71_0_, this_.Message as Message71_0_, this_.EventTime as EventTime71_0_, this_.Component as ...

我尝试添加具有错误日志级别的log4net配置,但是没有用。 如何停止这些日志消息?

我感到困惑的是,如果我有一个空的app.config,为什么它们会首先出现。 对我而言,我必须对其进行配置以使其不打印这些消息没有意义-默认应为关闭状态。 难道是我的代码以某种方式将它们设置为打开状态? 我应该找什么?

trans by 2020-01-18T07:26:26Z

我怎样才能让NHibernate只生成SQL而不执行它?

我知道如何使用Query<T>()配置选项在运行时将SQL登录到log4net / NLog / trace窗口。

我正在寻找的是一种将Query<T>()提供给NHibernate检索生成的SQL的方法。

我浏览了Persister类,驱动程序,不同的拦截器和事件。 有很多地方可以看,甚至缩小搜索范围也将有很大帮助。

trans by 2020-01-14T15:44:26Z

如何使用NHibern保留枚举

有没有办法使用NHibernate将枚举持久化到数据库? 那有一张代码表和枚举中每个值的名称。

我想保留没有实体的枚举,但仍然具有从所有其他引用实体到枚举的表的外键(枚举的int表示形式)。

trans by 2020-01-11T06:25:53Z

.net-如何使用NHibernate模式生成来更新数据库表模式?

我试图弄清楚如何将NHibernate配置与映射一起使用以更新表架构,而不是删除并重新创建它们。

目前,我正在将NHibernate.Tool.hbm2ddl.SchemaExport obj与FluentNHibernate结合使用,以生成mysql数据库的数据库架构。 虽然我不能说这是一个很大的问题,但是每当我在数据库上调用SchemaExport.Execute时,它将删除所有表,然后重新创建它们。

如果我可以让它更新现有的表结构并尽可能保留数据,那将会更酷。 但是我真的不想使用商业产品或代码生成器,因为我总体上不喜欢代码生成,并且我不需要足够的钱来考虑为此付费。 因此,希望任何答案都能牢记这些警告。

trans by 2019-12-29T21:30:58Z

何时在NHibernate / Hibernate OneToMany关系上使用inverse = false?

我一直试图了解Hibernate的inverse属性,但这似乎只是概念上困难的事情之一。

我得到的要点是,当您拥有一个使用一对多映射的Child对象集合的父实体(例如Parent)时,在映射上设置inverse = true会告诉Hibernate'另一面(子 )有责任自行更新以维护其表中的外键引用。

在将Children添加到代码中的集合中,然后保存Parent(设置了cascade-all)时,这样做似乎有两个好处:您可以在数据库上保存不必要的命中(因为没有设置反向,Hibernate认为这样) 有两个地方可以更新FK关系),并且根据官方文档:

如果某列    关联被声明   NOT NULL,NHibernate可能会导致   创建时违反约束   或更新关联。 阻止   这个问题,你必须使用   与的双向关联   许多有价值的末端(套装或袋子)   标记为inverse =“ true”。

到目前为止,这一切似乎都是有道理的。 我不明白的是:什么时候不想在一对多关系上使用inverse = true?

trans by 2019-09-27T06:50:37Z

.net-在同一解决方案中引用2个不同版本的log4net

我正在使用引用log4net 1.2.10.0的NHibernate 2.1.2.400。在同一项目中,我还使用了简单的记帐SDK,但遗憾的是它仍在使用log4net 1.2.9.0。

因此,如果我引用log4net 1.2.10.0,但我可以使NHibernate正常工作,但是simpleSDK无法正常工作。 反之亦然...

我猜大多数问题都来自log4net更改了其组装密钥这一事实。 我尝试使用绑定重定向没有成功:2个DLL没有相同的密钥。

我正在考虑重新编译NHibernate以使用log4net 1.2.9.0,但这似乎是错误的事情,我的感觉是,Simply Accounting不会很快更新其SDK以使用log4net 1.2.10.0。

处理此问题的最佳方法是什么? 有可能解决吗?

trans by 2019-09-22T16:19:59Z

如何在NHibernate中删除子对象?

我有一个父对象,它与子对象的IList有一对多的关系。 删除子对象的最佳方法是什么? 我没有删除父母。 我的父对象包含一个IList子对象。 以下是一对多关系的映射:

<bag name="Tiers" cascade="all">
  <key column="mismatch_id_no" />
  <one-to-many class="TGR_BL.PromoTier,TGR_BL"/>
</bag>

如果我尝试使用clear()从集合中删除所有对象,然后调用SaveOrUpdate(),我会得到以下异常:

System.Data.SqlClient.SqlException: Cannot insert the value NULL into column

如果我尝试单独删除子对象然后从父对象中删除它,我得到一个例外:

deleted object would be re-saved by cascade

这是我第一次处理在NHibernate中删除子对象。 我究竟做错了什么?

编辑:只是为了澄清 - 我不是试图删除父对象,只是删除子对象。 我将父母的关系设置为一对多。 我是否还需要在子对象映射上创建多对一关系?

trans by 2019-09-19T10:26:18Z

NHibern中的反向属性

我如何使用反向属性? 如果我没有弄错,对于一对多关系,inverse属性必须设置为true。 对于多对多关系,其中一个实体类逆属性必须设置为true,另一个设置为false。

任何人都可以对此有所了解吗?

trans by 2019-09-12T01:39:25Z

1 2 下一页 共2页