Tag: fluent nhibernate

Fluent-NHibernate是否支持映射到程序?

我一直想知道是否可以让Fluent-NHibernate与已经存在的存储过程进行通信,并将结果集中的映射分配给我自己的域对象。 也是Fluent-NHibernate能够直接执行没有返回结果集的程序吗? 基本上我一直在考虑使用Fluent-NHibernate来替换具有域驱动设计的日期TypedDataSet模型的含义,该设计可以从DAL返回简单对象。 如果Fluent-NHibernate不能轻松使用SP,我想我最喜欢的是一个组合DAL,它将利用FNH进行简单的CRUD操作,同时让复杂的程序由Enterprise Library管理。 虽然如果FNH不能很好地与SP配合使用,我认为拥有2个竞争DAL并不是最佳选择,我希望听到任何其他想法,而不是同时使用EntLib和FNH。

使用Fluent NHibernate将List 映射到分隔的字符串

我的模型看起来像这样: public class Product { public string Name {get; set;} public string Description {get; set;} public double Price {get; set;} public List Features {get; set;} } 我希望我的数据库表是平的 – 列表应该存储为分隔字符串:function一|function二|function三例如。 从db中检索时,它应将每个项目放回List中 这可能吗?

nhibernate不保存外键ID

我有一个简单的模型,我试图使用流畅的nhibernate持久化: public class Person { public int Id { get; set; } public string Name { get; set; } public IList Addresses { get; set; } } public class Address { public int Id { get; set; } public int PersonId { get; set; } public string Street { get; set; } } 一些样本数据: var […]

使用(流利)NHibernate与StructureMap(或任何IoCC)

在我学习NHibernate的过程中,我已经达到了下一个障碍; 我该如何将它与StructureMap集成? 虽然代码示例非常受欢迎,但我对一般过程更感兴趣。 我打算做的是…… 使用Fluent NHibernate创建我的类映射以用于NHibs配置 实现ISession和ISessionFactory 将我的ISessionFactory实例作为单例引导到StructureMap中 使用StructureMap注册ISession,使用per-HttpRequest缓存 但是,我不需要在HttpRequest结束时在我的会话实例上调用各种整理方法(因为这就是生命的终点)? 如果我在Dispose()中进行整理,那么structuremap会为我处理这个问题吗? 如果没有,我该怎么办? 谢谢 安德鲁

流利的Nhibernate问题(ClassMap)

我有以下XML(.hbm): MULTIPOLYGON -1 它使用Nhibernate Spatial类型…如何使用ClassMap(Fluent Nhibernate)映射该属性? 谢谢

流畅的NHibernate – 如何一对一地映射子类?

假设我有三个class级。 实例化A是有效的,但也有特殊情况B和D,它们是A的子类,添加了额外的信息。 我如何在(流畅的)NHibernate中为此创建映射文件? public class A { public int ID { get; set;} public string CommonProperty1 { get; set; } public string CommonProperty2 { get; set; } } public class B : A { public string BSpecificProperty1 { get; set; } //not null public string BSpecificProperty2 { get; set; } //not null } public class […]

流畅的NHibernate实体HasMany不同子类类型的集合

所以一切都与基本的鉴别器映射很好地协调。 我可以毫无问题地直接与实体A和B进行交互。 public class BaseType {} public class EntityA : BaseType {} public class EntityB : BaseType {} 这在BaseType映射中没有戏剧性地映射为 DiscriminateSubClassesOnColumn(“Type”) .SubClass(“A”, m => { }) .SubClass(“B”, m => { }); 问题发生在:聚合中我们想要将集合映射到每个子类 使用如下的映射 public class AggregateMap: BaseMap { public AggregateMap() { HasMany(x => x.ACollection).AsSet().Cascade.All(); HasMany(x => x.BCollection).AsSet().Cascade.All(); } } 这些显然不是完整的映射,但是最低限度的描述我正在尝试的东西。 添加到ACollection和BCollection的项目在保存Aggregate时通过级联正确保留。 但是,当检索到聚合时,对类型歧视存在混淆。 我已经经历了许多不同的可能解决方案,我不再知道哪些不起作用。 我觉得我不应该在集合中提供where子句,但事情对我来说不起作用。 任何线索将不胜感激。

MS Entity Framework VS NHibernate及其派生的贡献(FluentNHibernate,Linq for NHibernate)

我刚刚阅读了有关Entity Framework 4(实际上是版本2)的这篇文章 。 entity framework似乎比其首次发布提供了巨大的改进。 因此,我从来没有在任何项目中使用EF,因为我觉得EF与NHibernate相比还不够成熟。 NHibernate及其目前对FluentNHibernate和Linq for NHibernate的贡献由Ayende Rahien提供 我的感觉是,当第二版NHibernate问世时,微软只是试图获得有利于NHibernate的地形。 然而,我的担忧是以下(不是特别的顺序): EF4往往不那么XML冗长吗? EF4是否与除SQL Server之外的基础数据存储兼容? 使用EF4代替FluentNHibernate或NHibernate本身有什么好处? NHibernate是一个很棒的工具,我想每个人都同意。 由于其前身Hibernate,我们可以轻松找到文档和教程以及示例应用程序以熟悉它。 FluentNHibernate不是这种情况。 特别是根据我正在进行的项目,我要求我进一步调查NHibernate及其选项(例如FluentNHibernate),以便记录NHibernate和FluentNHibernate技术的使用规则和最佳实践。 因此,作为一名C风格的开发人员,在VB.NET中被戴上手铐,我无法在VB.NET中找到一些语法对应的例子,尽管我已经到目前为止。 我相信NHibernate是最佳选择,但作为一名软件顾问,我不能(不想)错过重要的技术变革,改进和发展。 尽管我读到了关于EF1的糟糕评论,但EF4看起来非常有前景。 您对NHibernate和Entity Framework途径的看法是什么? 至于我,我对所有的阅读都感到困惑。 我需要你把头伸出水面。 谢谢大家!

nhibernate 4.0中的双向关系

我有一个代码在NHibernate 3.1上完美运行,但是当它不能在NHibernate 4.0上运行时 所以,这就是阶级关系 public class Employee : BaseEntity { … public Department Dept { get; set; } } public class Department : BaseEntity { … public IList Employees { get; set; } } 对于映射,我们有这个 DepartmentMap : ClassMap { Table(“….”); HasMany(x => x.Employees).KeyColumn(“DeptId”).Not.KeyNullable(); } EmployeeMap : ClassMap { Reference(x => x.Dept).Column(“DeptId”); } 当我添加这样的员工时 var dept […]

流畅的NHibernate无法在测试的调试模式下从GAC加载MySql.Data

我得到以下代码: var cfg = new Configuration(); cfg.Configure(); FluentConfiguration config = Fluently.Configure(cfg) .Mappings( m => m.FluentMappings.AddFromAssemblyOf()); s_SessionSource = new SessionSource(config); 当我使用以下错误调试unit testing时,最后一行抛出exception: 无法加载文件或程序集“MySql.Data”或其依赖项之一。 该系统找不到指定的文件。 问题是它没有说它尝试使用的版本。 我尝试使用以下配置捕获所有版本: 但问题仍然存在。 奇怪的是exception没有说明版本,它通常在这种情况下。 流利的NHB是3.1版本的最新1.2版NHB是3.2连接器是6.3.7.0 我正在使用MSTest。 当我在没有调试的情况下运行测试(运行检查测试)时,它不会抛出任何exception并成功完成(它确实对MySQL测试数据库执行操作,因此在这种情况下它会找到MySql.Data.dll并插入行例如没有问题) 。 更新好的,当我从GAC获取MySql.Data.dll并将其作为文件引用时,并设置Copy Local它最终开始在调试中工作。 怎么回事? 为什么它无法在调试中从GAC加载它,并且可以在简单的运行模式下?