Tag: nhibernate

在nhibernate mvc c中加入两个表#

我使用主键和外键加入两个表。 我的桌子是 项目 ,列是: ItemId int主键, 名称 varchar, 价格浮动, CategoryID int外键, QtyInStock int 类别 ,列是: Id int pk, 类别 varchar, 名称 varchar 我想根据ID = categoryId选择Category 我正在使用NHibernate 4.03与xml配置文件。

NHibernate存储库

有没有人在NHibernate Repository上有适当和简化的写作? 我在FlexBuilder中使用了Java,Hibernate,LCDS DataService存储库(使用rtmp通道),并希望用C#.NET实现精确的基础。 我已经浏览了大量的在线文档,但没有任何反映出与FlexBuilder一样的确切用法。 如果有人有一个小的示例应用程序然后分享。 这会很有帮助。 关于尼廷

NHibernate / Fluent NHibernate动态列映射

我有一个表,其中一些列在编译时是未知的。 这些列可以是整数值,也可以是某个枚举值。 有一个表包含此类动态列的所有名称,并且还包含列的类型。 这个“metatable”有以下几列: DynamicColumnId(Pk) 名称 TypeId(整数/枚举,从单独的表中作为Fk) 整数列具有此表中的名称 ,而Enum列是来自具有该名称的表的Fk列,具有一些修改(例如“DynamicTable”前缀)。 我能想到的唯一解决方案是使用Reflection.Emit动态创建一个Entity类和一个相应的Mapping类。 不可否认,我是NHybernate / Fluent NHybernate的新手,它似乎是表之间相对简单的层次结构,所以我想validation我的解决方案并不像最初看起来那样难看…… 我也欢迎完全忽略我的表层次结构的解决方案,以便有效地实现相同的结果(即,枚举动态表上的行,遍历所有列,知道它们是否是枚举,如果它们是,他们可能的价值观)。 ( 编辑:附加信息问题域 )我最初包含最少的细节,以避免太多信息相关的混淆。 这种描述要复杂得多,但它揭示了这种设计背后的动机。 涉及的应用程序旨在自动化日志/转储分析。 分析场景经常由日志/转储专家提供,因此,为了简化需求=>实现=>validation周期的典型过程,这些分析场景由专家直接实现为Iron Python代码片段,一些特定于域的构造注入到片段的范围内。 每个片段都有一个与其相关的“上下文”。 “上下文”的一个例子可能是“产品”,“版本”等……所以,代码片段本身只在某些上下文中调用 – 这有助于通过消除分支来简化Python代码(您可以将其视为面向方面编程, 在某种程度上)。 在为各种上下文选择值之后,非专家可以使用具有给定代码上下文数据库的应用程序来分析日志/转储。 当专家决定为某个代码片段编目需要新的上下文时,他可以添加一个上下文,指示它可能具有的值。 将新上下文添加到数据库后,将为运行分析的非专家提供为新添加的上下文选择值的选项。 “动态表”是将代码段与发布代码段时存在的各种上下文(列)的值相关联的表,以及当时不存在的列的默认值。

nHibernate Validator自定义IMessageInterpolator

有没有人设法让自定义IMessageInterpolator工作以启用错误消息的自定义。 我试过按照这个网页上的说明但无济于事。 http://codelog.climens.net/2009/03/04/nhibernate-validator-custom-messages/ 查看代码,DefaultMessageInterpolator似乎已经融入框架,所以我有什么遗漏。 我已经包含了我的unit testing,以显示我是如何实现它的。 namespace TestValidator { [TestClass] public class UnitTest1 { [TestMethod] public void TestValidator() { var customer = new Customer(); ClassValidator classValidator = new ClassValidator(customer.GetType()); InvalidValue[] validationMessages = classValidator.GetInvalidValues(customer); Assert.IsTrue(validationMessages.Length == 1); Assert.IsTrue(validationMessages[0].Message == “may not be null or empty”); } [TestMethod] public void TestCustomInterpolator() { ValidatorEngine ve = new ValidatorEngine(); […]

Nhibernate,WinForms,Castle Windsor:会话管理

我知道会话管理的问题在过去已经提出,但我找不到任何可以帮助我解决问题的方法。 我有许多存储库类(例如CustomerRepository,ProductRepository等),我通过Castle Windsor解析(注意:我正在尝试应用此处概述的三个调用模式)。 我想我最好每个Presenter有一个会话(在我的情况下,这相当于每个表单一个),但是,存储库类需要访问当前活动表单的会话..我不知道我是如何合并这个事实上,这些存储库是通过windsor解决的,因为主持人不是单身人士。 例如: public class SomePresenter { private ISomeView view; private ISession session; private ICustomerRepository customerRepository; private IOrderRepository orderRepository; public SomePresenter(ISomeView view, ISessionFactory sessionFactory, ICustomerRepository customerRepository, IOrderRepository orderRepository) { this.view = view; this.session = sessionFactory.OpenSession(); this.customerRepository = customerRepository; this.orderRepository = orderRepository; } } 存储库需要访问会话…如何使用Windsor进行此操作? 我是否被迫通过一个属性在存储库中手动设置会话,还是有一个我不熟悉的聪明的温莎技巧?

nhibernate 3.3一对多映射代码更新子代而不是插入

我有这种一对多的关联,我用“老”nhibernate或流利创造了zilions次。 但我无法使用代码映射 这些是课程 public class Parent { public virtual IList Children { get; set; } } public class Child { public virtual Parent Parent { get; set; } } 没什么奇怪的 这些是映射类 对于家长: Bag(x => x.Parent, m => m.Key(k => k.Column(“Parent_id”))); 儿童: ManyToOne(x => x.Children, map => { map.Column(“Parent_id”); map.Cascade(Cascade.All); }); 如果我做以下事情 var parent = new […]

NHibernate查找集合的映射(如果有意义的话)

我不知道如何提出问题,因为我不知道我不知道什么,因此我不知道我正在试图得到答案的正确术语。 我将解释我的情景,希望它会有所帮助: 我有三个表,一个Book表,一个Tag表和一个BookTag查找表。 每本书都有一个ID,一个标题(对于初学者)每个标签都有一个ID,标题每个BookTag都有一个ID,一个BookID和一个TagID。 可以使用多个标签标记书籍,并且可以在多个BookID上使用标签。 我已经以这种方式设置了我的对象: Book.cs int BookID string Title List Tags Tag.cs int TagID string Title BookTag.cs int ID int BookID int TagID 我希望Books.cs类有一组标签,而不是BookTags,但我似乎无法在NHibernate中获得正确的映射。 这就是我为Book.hbm.xml文件所做的: 这是我的BookTag.hbm.xml: 在这个模型下,我可以通过使用我的对象模型得到我想要的标签:Book.Tags [0] .Tag,但这看起来效率低下。 我可以使用NHibernate将BookTags.TagID映射到数据库中的Tags.TagID,以便我可以让Book.Tags [0]返回Tag对象,而不是BookTags对象吗? 我不知道将Books与标签关联的更好方法,以便可以在Book2上使用Book1上使用的标签,而无需在Tags表中添加新条目。 我希望这至少有一定意义。 如果您需要进一步澄清,请与我们联系。 如果我在有人回答之前搞清楚,我会在这里发布我的解决方案。

与Fluent Nhibernate建立一对多的关系

我和我的同事有点争吵,我似乎无法找到答案,但这是非常基本的东西。 在Fluent Nhibernate实体中建立一对多关系。 我们以Roles和用户为例。 可以将角色分配给多个用户,这样我的实体内容就像: public class User { [Required] public virtual string FirstName { get; set; } public virtual Role Role { get; set; } } 和角色 public class Role { [Required] public virtual string Name { get; set; } public virtual IList Users{ get; set; } public Role() { Users = new List(); […]

查询在NHibernate中出现超时错误,但在SQL Server中没有

我在C#中遇到了NHibernate的问题。 当它想要执行查询时,应用程序面临ADO超时错误,但是当我使用SQL事件探查器捕获查询,然后我在SQL Server的新查询中运行它时,它只需要2秒 有任何想法吗??

如何在StructureMap中发布HybridHttpOrThreadLocalScoped对象?

在Windows服务中执行后台任务时,我使用HybridHttpOrThreadLocalScoped存储NHibernate ISessions的内容。 由于在Windows Server中没有HTTPContext,我想知道只调用ReleaseAndDisposeAllHttpScopedObjects()是否足以释放该线程的ISession实例?