天道酬勤,学无止境

fluent-nhibernate

如何将 Fluent NHibernate Automapping 与实体中的多个相同类型的列表一起使用?(How can I use Fluent NHibernate Automapping with multiple Lists of the same type in an Entity?)

问题 NHibernate 似乎不能自动映射一个实体中给定类型的多个 IList。 考虑以下两个实体(基于 Fluent NHibernate 源代码中包含的 Examples.FirstProject 示例代码)。 public class Employee { public virtual int Id { get; private set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } } public class Store { public virtual int Id { get; private set; } public virtual IList<Employee> Staff { get; set; } public virtual IList<Employee> Managers { get; set; } } 这似乎是一个完全有效的对象模型——每家商店都有几个员工和几个经理员工。 但是当我自动映射时,Staff 和 Managers 列表存储在 Employee 表中,所有这些都具有相同的外键。 Employee Table Id FirstName LastName Store_id 3 Daisy Harrison

2021-07-13 01:16:51    分类:技术分享    nhibernate   fluent-nhibernate   nhibernate-mapping   automapping

Fluent NHibernate 继承映射问题(Fluent NHibernate inheritance mapping problem)

问题 我将 Fluent NHibernate 与每个子类继承映射的表一起使用。 我想引用特定对象的列表,但我不知道如何将结果限制为一个特定类的对象。 class PetMap : ClassMap<Pet> { public PetMap() { Id(c => c.ID).GeneratedBy.Identity(); } } class DogMap : ClassMap<Dog> { public DogMap() { Mac(c => c.DogSpecificProperty); } } class CatMap : SubclassMap<Cat> { public CatMap() { Mac(c => c.CatSpecificProperty); } } class PersonMap : ClassMap<Person> { public PersonMap() { Id(c => c.ID).GeneratedBy.Identity(); //this works fine HasMany(c => c.Pets); //this dosen't work, because the result contains dogs and cats //how can I tell NHibernate to only fetch dogs or cats

2021-07-12 19:36:33    分类:技术分享    nhibernate   fluent-nhibernate

将 MyGeneration 与 Fluent NHibernate 结合使用(Using MyGeneration with Fluent NHibernate)

问题 我在这里使用 MyGeneration 找到了一个很棒的 NHibernate 代码生成模板, http://vucetica.blogspot.com/2009/01/nhibernate-template-for-mygeneration.html 这将创建扩展名为 hbm.xml 的 XML 映射文件。 我想知道是否有人知道支持 fluent NHibernate 的模板,该模板使用 C# 文件定义映射。 谢谢 回答1 当您使用 Fluent NHiberate 时,您不需要 hbm 文件,您可以根据您的域模型和约定生成它们

2021-07-12 15:26:02    分类:技术分享    c#   nhibernate   fluent-nhibernate

NHibernate 抛出 Session 关闭(NHibernate throwing Session is closed)

问题 我在风中飘扬,所以我想我会在这里问......如果这很明显并且之前已经回答过,请告诉我。 我正在构建一个 MVC 3 站点,当我与一个用户一起运行它时,它运行良好,我在其中单击页面。 但是,如果我疯狂地点击刷新,最终我会点击“会话已关闭”。 我已经隔离了我几乎所有的存储库以试图深入了解,所以我知道它在主页上出错了。 在存储库中唯一被调用的是从数据库表中获取用户名。 我使用 Postgres 作为数据库,并使用 NauckIT 的 ASP.NET Membership provider。 主数据库也是 Postgres(不过是另一个数据库)。 会话管理使用以下代码完成: public class MvcApplication : System.Web.HttpApplication { public static ISessionFactory SessionFactory = NHibernateHelper.GetSessionFactory(); public MvcApplication() { this.BeginRequest += MvcApplication_BeginRequest; this.EndRequest += MvcApplication_EndRequest; } void MvcApplication_BeginRequest(object

2021-07-12 13:39:26    分类:技术分享    c#   asp.net-mvc-3   nhibernate   fluent-nhibernate   ninject

将 NHibernate 与 3 层开发混合(mixing NHibernate with 3 tier developing)

问题 我有一个 3 层应用程序:第一层:SQL DB。 第二层:App Sever (dotnet) 第三层:智能 wpf 客户端。 我使用 NHibarnate (fluent) 作为应用程序服务器层的数据源(应用程序服务器 - 第二层使用 NH 与 DB 对话) 应用层使用 WCF 与客户端对话。 我是否从使用 NH 中受益 - 因为 WCF 不支持 NH 延迟加载(至少它看起来不像这样)并且 - 如果我使用静态会话对象 - 我必须使服务器单实例单并发 - 否则当多个电话同时打进来时,NH 内部会变得混乱。 如果我为每次调用打开一个会话对象 (NH) 并在调用结束时关闭它 - 我会丢失 NHibarante 第一级缓存...... 所以 - 问题是 - 我实施 NH 错了吗? 或者它在我的项目中不应该是有效的? 回答1 您可能想查看 uNhAddIns WCF 项目。 它使用 session-per-call,因为这是 WCF 的推荐方式。 您说 WCF 没有延迟加载是正确的。 您需要将对象图填写到您需要的级别,然后在途中发送。 如果您的服务层在行为方面不是面向对象的,那么 NHibernate 可能会过大。 如果没有更多背景,这是一个艰难的决定。

2021-07-12 12:16:57    分类:技术分享    wcf   nhibernate   fluent-nhibernate   n-tier-architecture

FluentNHibernate or port to NHibernate mapping by code

I have several projects using NH and FNH to generate the mappings (some Fluent some Automapped). There are still some bugs and missing features i need, but it seems that FNH could die because of mapping-by-code integrated into NHibernate. Question: Contribute to FNH or to migrate the mappings to mapping-by-code or confORM and fixing problems/implementing features there?

2021-07-12 12:06:12    分类:问答    nhibernate   fluent-nhibernate   nhibernate-mapping   fluent-nhibernate-mapping   mapping-by-code

nhibernate 中的 HasOne 和 References 有什么区别?(What are the differences between HasOne and References in nhibernate?)

问题 nhibernate 中的HasOne()和References()什么区别? 回答1 HasOne为您创建表之间的一对一映射。 References创建了典型的多对一关系。 更多定义: 一对一关系意味着当一个表中存在一个记录时,它必须(或可以)在另一个被引用的表中具有一个且最多一个记录。 示例:用户表和选项表(一个用户有一组固定的选项) 多对一关系是指当一张表中存在一条记录时,另一张表中可以有许多相关记录。 示例:用户表和购买表(一个用户可以进行多次购买)。 注意:在我说table 的地方,您可以根据需要安全地用类或实体替换它,当使用 FluentNH 时,很容易互换使用它们。 这在 fluentnhibernate wiki 文章中有更准确的解释。

2021-07-12 09:46:47    分类:技术分享    c#   .net   nhibernate   fluent-nhibernate

Fluent NHibernate Many to Many with extra column 不插入(Fluent NHibernate Many to Many with extra column does not insert)

问题 我正在从 Fluent Nhibernate Many-to-Many mapping with extra column 与 fluent nhibernate 苦苦挣扎 我已经复制了映射并编写了我所能编写的最小程序......但它不会保存......有人能够提供一些见解吗??? public class Product { public int Id { get; set; } public string Name { get; set; } public IList<Inventory> Inventory { get; set; } public Product() { Inventory = new List<Inventory>(); } } public class Warehouse { public int Id { get; set; } public string Name { get; set; } public IList<Inventory> Inventory { get; set; } public Warehouse() { Inventory = new List<Inventory>(); } } public class Inventory { public Product Product { get; set; } public

2021-07-12 09:38:24    分类:技术分享    c#   nhibernate   orm   fluent-nhibernate

Is it possible for nhibernate to return a query as an IDictionary instead of an entity class?

I have an entity Person: public class Person { public virtual int Id {get; set; } public virtual string FirstName { get; set; } public virtual string MiddleName { get; set; } public virtual string LastName { get; set; } } with the mappings: public class PersonMap { public PersonMap() { Table(TABLE_NAME); Id( x => x.Id); Map(x => x.FirstName).Not.Nullable(); Map(x => x.LastName).Not.Nullable(); Map(x => x.MiddleName).Not.Nullable(); } } There are some stuations where I would like Nhibernate to return a dictionary instead of the entity: IDictionary<string,string> person = session.Get(id);//

2021-07-12 05:27:37    分类:问答    nhibernate   fluent-nhibernate

NHibernate with Firebird… are these features enabled?

We're using NHibernate to great success with a Firebird backend. My question relates to the features available in NHibernate being supported by Firebird. If you have any expertise with Firebird and NHibernate your comments are welcome. Does Firebird support "Future" queries? From my reading it would appear that Firebird is one of a few databases that doesn't support this feature. Does anyone have a workaround as "Future" would be a good feature to utilise. Does Firebird support the NHibernate feature "prepare_sql". For some reason I cannot get this to work in Firebird and continually receive

2021-07-12 03:25:37    分类:问答    c#   nhibernate   fluent-nhibernate   firebird