Tag: nhibernate

使用NHibernate映射通用类

我正在尝试执行以下操作,但它抱怨“未找到’extends’引用的类”。 我想我需要为每个具体类型的Component都有一个映射,但我不能指定Attributes.Class两次.. 代码如下: [NHibernate.Mapping.Attributes.Class(Table = “Components”, Abstract = true, NameType = typeof (Component))] public abstract class Component : IComponent where T : ContentItem { … } [NHibernate.Mapping.Attributes.JoinedSubclass(Table = “ComponentA”, ExtendsType = typeof(Component))] public class ComponentA : Component { … } [NHibernate.Mapping.Attributes.JoinedSubclass(Table = “ComponentB”, ExtendsType = typeof(Component))] public class ComponentB : Component { … } 其中ItemA和ItemB从ContentIteminheritance并全部映射。

Fluent Nhibernate – 如何指定表名

我刚开始学习Nhibernate和Fluent Nhibernate。 我想在创建映射类时指定表名。 应用程序中的实体名称为“CustomerOrders”,但在oracle数据库中,表名为“CUSTOMER_ORDERS”。 我从谷歌搜索了解到我可以使用“WithTable”来指定数据库表名。 我不知道如何使用它和Vs2008没有找到方法的地方。 谢谢

无法使用QueryOver解析复合属性

在我正在开发的项目中,我在NHibernate中采用了更新的QueryOver语法。 但是,我在复合属性上实现排序时遇到问题。 我要查询的模型看起来像这样: public class Person { public virtual int Id { get; set; } public virtual string FirstName { get; set; } public virtual string LastName { get; set; } // Not really relevant; it has an ID, but that’s all we care about // for this question. public virtual Group Group { get; […]

NHibernate将类属性映射到Rows而不是Columns

是否可以映射一个类,其中每个属性都存储为表中的行,而不是列。 该场景是我们将全局选项持久保存到数据库的位置。 我们将选项存储在“选项”类中,该类具有每个选项的属性,即“展开菜单”,“退出时保存”等。 我们只希望将每个类属性存储为一个由Enum标识的新行,而不是将每个选项存储在自己的表列中。 这可能吗? (C#Winforms)

Nhibernate与其他ORM的区别是什么?

除了它的开源和成熟之外,将nhibernate与其他.net ORM框架(如Subsonic , ADO.NET Entity Framework等)分开的区别因素是什么? 更好的说,我为什么要选择nhibernate而不是其他.netentity framework?

字典C中的GetHashCode和Equals实现#

我来到这个网站,在Dictionary中搜索对象比较,我开始知道重写GetHashCode和Equals是在C#中进行对象比较的必要条件。 这是我尝试使用FOREACH迭代方法解决的一段代码。 但是由于性能问题,我的Boss说不使用任何迭代(可能使用containskey或containsvalue方法)也是如此。 任何帮助都非常欢迎.. public class employee { public string empname { get; set; } public string location { get; set; } public double kinid { get; set; } public double managerKin { get; set; } public override bool Equals(object obj) { return base.Equals(obj); } public override int GetHashCode() { return base.GetHashCode(); } } public […]

IIS 7上的nHibernate,SQLClientPermissionException

我正在使用nHibernate开发一个MVC应用程序; 通过VS的内置Web服务器运行应用程序运行没有错误。 在localhost上设置并运行IIS7时,应用程序在调用System.Data.SqlClient.PermissionDemand后抛出SQlClientPermissionexception(SqlClient在内部调用它) 我已经启用了应用程序在完全信任下运行但它似乎不会影响结果。

NHibernate firebird错误 – 索引超出范围

使用NHibernate和Firebird数据库时,c#中可能导致以下错误? 2015-08-17 08:27:04,962 [21] [(null)] ERROR Smartsign.Server.Core.Server Unhandled exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException() at System.Collections.Generic.List`1.get_Item(Int32 index) at FirebirdSql.Data.FirebirdClient.FbParameterCollection.get_Item(Int32 index) in c:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbParameterCollection.cs:line 58 at FirebirdSql.Data.FirebirdClient.FbParameterCollection.GetParameter(Int32 index) in c:\Users\Jiri\Documents\devel\NETProvider\working\NETProvider\src\FirebirdSql.Data.FirebirdClient\FirebirdClient\FbParameterCollection.cs:line 315 at System.Data.Common.DbParameterCollection.System.Collections.IList.get_Item(Int32 index) at NHibernate.Type.Int32Type.Set(IDbCommand rs, Object value, Int32 […]

“每个请求的会话”模式是否利用了缓存? (“每个会话的会话”或“每个请求的会话”)

我今天在Web应用程序中从头开始构建一个新的应用程序。 (技术是Asp.Net ,我使用的ORM是Entity Framework 。如果重要的话) 我不确定每个请求广泛使用的模式会话是否真的很好。 在我看来,模式的优点是缓存不会增加,直到数据库会话崩溃\太大而因此效率低下。 但是每个请求的新会话是不是太多了? 这意味着每个服务器调用都会重置缓存,即使像auto-complete这样的简单ajax请求也有一个全新的缓存,实际上对于缓存重置的每个键击都是如此。 您在一个请求中查询同一对象实体行的可能性很小。 每个会话的会话是不是更好的模式? 它具有两方面的优点 缓存永远不会增长。 实际上可以使用缓存… 那么…… 为什么每个请求的会话被如此广泛地使用,并且每个会话的会话不是? 澄清: 当我编写ORM会话时,它既适用于NHibernate’s session ,也适用于EntityFramework’s DbContext 。 我的意思是在每个请求上对session \ dbcontext进行flush-commit-SaveChanges。

如何在流畅的nHibernate中指定Columntype?

我有一个CaptionItem类 public class CaptionItem { public virtual int SystemId { get; set; } public virtual int Version { get; set; } protected internal virtual IDictionary CaptionValues {get; private set;} } 我正在使用以下代码进行nHibernate映射 Id(x => x.SystemId); Version(x => x.Version); Cache.ReadWrite().IncludeAll(); HasMany(x => x.CaptionValues) .KeyColumn(“CaptionItem_Id”) .AsMap(idx => idx.Column(“CaptionSet_Name”), elem => elem.Column(“Text”)) .Not.LazyLoad() .Cascade.Delete() .Table(“CaptionValue”) .Cache.ReadWrite().IncludeAll(); 所以在数据库中创建了两个表。 一个CaptionValue和其他CaptionItem 。 […]