Tag: fluent nhibernate

将数据库列映射到常量值,而不需要实体类中的属性

是否可以将数据库列映射到常量值而无需实体类中的属性? 这基本上是一种解决方法,用于在数据库中该列上缺少缺省值,并结合NOT NULL约束。 数据库是外部的,无法更改,但我不需要该表中的所有列,因此不希望在我的实体类中具有相应的属性。 我问这个Hibernate JIRA问题中描述的基本相同。

如何在Fluent NHibernate中映射受保护的集合?

我已尝试在Fluent中使用Reveal属性,但我无法使用集合进行编译。 我希望实体中的一个集合受到保护,除了实体本身之外的任何地方都无法访问。 这可能吗? 谢谢 编辑: 这是我正在尝试使用的代码, HasMany(x => Reveal.Property(“_trips”)); 我也尝试过这段代码, HasMany(Reveal.Property(“_trips”)); 每次我的应用程序运行时,NHibernate都说它无法映射到“Property”或者它会抛出一个未知的exception。

如何使用NHibernate复制对象

我正在使用Nhibernate(我是一个完整的菜鸟),我希望能够做的是复制从数据库加载的实体并用新的Id保存…有没有人遇到这种情况? 任何帮助将非常感激。

流利的NHibernate“无法解决财产问题”

我已经阅读了很多关于同样错误的问题,但没有找到与我的确切问题相符的问题。 我正在尝试使用Fluent NHibernate访问对象的属性,它本身是根对象的一部分。 一些答案说我需要使用投影,其他我需要使用连接,我认为它应该通过延迟加载。 这是我的两个类以及Fluent映射: 艺术家class public class Artist { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList Albums { get; set; } public virtual string MusicBrainzId { get; set; } public virtual string TheAudioDbId { get; set; } public Artist() { } } […]

N-Hibernate与Oracle中的长字符串会导致错误

我使用oracle作为db和流利的Nhibernate进行映射。 下面是我的对象类 public class UserFieldEvent { public virtual int Id { get; set; } public virtual UserFieldBase UserField { get; set; } public virtual EventType EventType { get; set; } public virtual string EventScript { get; set; } } EventScript的长度可以是0到4000.在数据库中,我将EventScript的列类型设置为CLOB。 下面是我的映射类: public UserFieldEventMap() { Table(“TBLDS_USERFIELDEVENT”); Id(x => x.Id).GeneratedBy.Sequence(“SEQDS_USERFIELDEVENT”); Map(x => x.EventType).CustomType(); Map(x => x.EventScript).CustomSqlType(“CLOB”); References(x […]

引用类时的NHibernate映射问题(延迟加载问题?)

我正在使用NHibernate + Fluent来处理我的数据库,我在查询引用其他数据的数据时遇到了问题。 我的简单问题是:我是否需要在映射中定义一些“BelongsTo”等,或者只在一侧定义引用就足够了(参见下面的映射示例)? 如果是这样 – 怎么样? 如果没有请继续阅读..看看这个简化的例子 – 从两个模型类开始: public class Foo { private IList _bars = new List(); public int Id { get; set; } public string Name { get; set; } public IList Bars { get { return _bars; } set { _bars = value; } } } public class Bar { […]

流畅的NHibernate强制在外键引用上不可为空

刚刚尝试了一些流畅的NHibernate AutoMap惯例,并遇到了一些我无法弄清楚的事情。 我假设我只是没有找到正确的位置…基本上尝试在一对多关系的“多”方面强制执行NOT-NULL。 看来,使用自动化,它总是使父属性Id在数据库中可以为空。 我在StackOverFlow上做了一些搜索并发现了类似的问题,但是没有任何与AutoMapping和Conventions相关的内容(除非我错过了)。 快速举例…… public class Group // One Group { public Group() { this.Jobs = new List(); } public virtual Guid Id { get; set; } public virtual string Name { get; set; } public virtual IList Jobs { get; protected set; } } public class Job // Has many Jobs { […]

没有会话绑定到当前上下文

我遵循了这个教程: http : //nhforge.org/blogs/nhibernate/archive/2011/03/03/effective-nhibernate-session-management-for-web-apps.aspx 在尝试加载页面时,我没有得到“没有绑定到当前上下文的会话”错误(mvc 3)。 public static ISessionFactory BuildSessionFactory() { return Fluently.Configure() .Database(MsSqlConfiguration.MsSql2008 // .ConnectionString(@”Server=.\SQLExpress;Database=db1;Uid=dev;Pwd=123;”) .ShowSql()) //.ExposeConfiguration(c => c.SetProperty(“current_session_context_class”, “web”)) //.CurrentSessionContext() .Mappings(m => m.FluentMappings .AddFromAssemblyOf()) .ExposeConfiguration(cfg => new SchemaExport(cfg) .Create(false, false)) .BuildSessionFactory(); } 实际错误在我的Repository.cs文件中: 第114行:公共虚拟T Get(int id)第115行:{第116行:return _sessionFactory.GetCurrentSession()。Get(id); 第117行:}第118行: 当我调试它时,_sessionFactory不是null或者任何东西,它似乎无法找到绑定的会话。 我在我的web.config中连接了httpmodule,它确实运行,所以这不是问题。 在我的nhibernate配置中,我尝试了两种方法: .ExposeConfiguration(c => c.SetProperty(“current_session_context_class”, “web”)) 和 .CurrentSessionContext() 但那没用。

使用流畅的nhibernate自动映射IDictionary

我有一个看起来像这样的简单类: public class Item { // some properties public virtual IDictionary Details { get; private set; } } 然后我有一个看起来像这样的地图: map.HasMany(x => x.Details).AsMap(“Name”).AsIndexedCollection(“Name”, c => c.GetIndexMapping()).Cascade.All().KeyColumn(“Item_Id”)) 有了这张地图我得到以下错误,我不知道如何解决它? 类型或方法有2个通用参数,但提供了1个通用参数。 必须为每个通用参数提供通用参数。

流畅的nhibernate – 具有属性的多对多映射

我有2个主表,它们通过地图表链接如下 User [UserId,Name] Resource [ResourceId,Name] UserResourceMap [UserId,ResourceId,AccessLevel] 具有AccessLevel的Resource和User ClassMap如何作为资源属性? 我的Domain类看起来像这样 public class User { public virtual int UserId { get;protected set; } public virtual string Name { get;set; } } public class Resource { public virtual int ResourceId { get;protected set; } public virtual string Name { get;set; } public virtual string AccessLevel { get;set; […]