Tag: 流利

Linq的NHibernate 3.1迁移问题

我正面临从NHibernate 2.1.2 + Fluent 1.0迁移到NHibernate 3.1 + Fluent 1.2的问题: 曾经工作 : List orders = session.Linq() .Where(o => o.OrderLines.Any(ol => printStatuses.Contains(ol.PrintStatus))) .ToList(); 不再工作了 List orders = session.Query() .Where(o => o.OrderLines.Any(ol => printStatuses.Contains(ol.PrintStatus))) .ToList(); 我们收到以下错误: “无法加载类型o.OrderLines 。可能的原因:未加载或未指定程序集。” OrderLines是Order类的集合属性,类型为IList NHibernate似乎无法获得该集合的完全限定类名。 但是,查看会话工厂,我们可以看到collectionRolesByEntityParticipant字典包含OrderLine类的键,其字典值指向Order.Orderlines 。 有人解决过这个吗? 编辑: PS:我们使用自动化,以防你想知道。

在流畅的api中有一个计数器部分吗?

如果没有弄错,Fluent api中[DataType(DataType.Currency)]的DataAnnotation的计数器部分是modelBuilder.Entity.Property(i => i.Price).HasColumnType(“Currency”) 。 那么[DataType(DataType.EmaillAddress)]的计数器部分是什么? 或者是否有一个网站,其中包含一个可以在数据中进行注释的列表 – 您可以在流利的api中进行操作。 因为我想使用Fluent Api进行validation和映射。 谢谢

指定的架构无效。 错误:未加载关系,因为类型不可用

我想在Order模型中引用OrderAddress模型两次 ; 一次作为ShippingAddress ,一次作为BillingAdress 。 另一方面,我希望我的OrderAddress模型有一个OrderAddresses列表。 OrderAddress模型 public enum AddressType { Billing, Shipping, Contact } public class OrderAddress : BaseModel { public AddressType AddressType { get; set; } public bool IsPrimary { get; set; } public string Address { get; set; } public string CityStateZip { get; set; } public string ContactName { get; set; […]

您在C#中制作或看到的哪些流畅的界面非常有价值? 他们真是太棒了?

如今,“流畅的界面”是一个相当热门的话题。 C#3.0有一些很好的function(特别是扩展方法)可以帮助你制作它们。 FYI,一个流畅的API意味着每个方法调用返回一些有用的东西,通常是你调用方法的同一个对象,所以你可以继续链接。 Martin Fowler在这里用Java示例讨论它。 这个概念就像这样: var myListOfPeople = new List(); var person = new Person(); person.SetFirstName(“Douglas”).SetLastName(“Adams”).SetAge(42).AddToList(myListOfPeople); 我在C#中看到了一些非常有用的流畅接口(一个例子是用于validation我在之前提出的早期StackOverflow问题中找到的参数的流畅方法。它让我感到震惊。它能够为表达参数validation规则提供高度可读的语法,并且另外,如果没有例外,它可以避免实例化任何对象!所以对于“正常情况”,开销非常小。这一小窍门在短时间内教会了我很多 。我想找到更多的东西像那样)。 所以,我想通过观察和讨论一些优秀的例子来了解更多。 那么, 你在C#中制作或看到的一些优秀的流畅界面,是什么让它们如此有价值? 谢谢。

如何使用Entity Framework 6 Code First更改现有列的大小

我有一个POCO工厂,它映射到我的数据库中的表dbo.Plant(SQL SERVER 2014)。 数据库中的某些列的数据类型为nvarchar(max)NULL。 我正在尝试使用以下代码通过EntityTypeConfiguration更改数据类型: Property(x => x.PCode).HasMaxLength(25); 但是,在添加迁移(添加迁移名称)时,生成的Up() – 方法将不包含此列的任何更改。 但是,如果我也像这样要求它: Property(x => x.PCode).HasMaxLength(25).IsRequired(); ..然后在Up() – 方法中进行适当的更改: AlterColumn(“dbo.Plant”, “PCode”, c => c.String(nullable: false, maxLength: 25)); 是否可以让它只注册尺寸的变化而不改变可空性? 编辑:我已经设法通过直接在Up()和Down() – 方法中进行更改来解决问题,但问题仍然存在,如果有任何事情只会使用EntityTypeConfiguration自动触发此更改。

流畅的NHibernate生成和分配的ID列

我正在使用Fluent NHibernate来处理Web应用程序中的数据持久性。 我的问题…我有一个基类使用GeneratedBy()映射所有具有类型T的ID属性(几乎总是int或GUID)的实体.Identity() 在应用程序启动时,我有一个boot-strapper,它检查并validation所需的种子数据是否已填充。 我的问题是,填充的一些种子数据需要一个特定的ID。 (与枚举或系统用户对应的ID) 有没有办法强制NHibernate使用我指定的ID提交记录,而不是自动生成的ID? 之后对存储库的任何其他提交都可以自动生成。

流利的NHibernate多对多

我正在使用Fluent NHibernate并且遇到一些问题,我的一个类可以设置多对多的关系。 这可能是一个愚蠢的错误,但我已经陷入了一点点试图让它运作。 无论如何,我有几个有许多关系的课程。 public class Person { public Person() { GroupsOwned = new List(); } public virtual IList GroupsOwned { get; set; } } public class Groups { public Groups() { Admins= new List(); } public virtual IList Admins{ get; set; } } 映射看起来像这样 人:…… HasManyToMany(x => x.GroupsOwned) .WithTableName(“GroupAdministrators”) .WithParentKeyColumn(“PersonID”) .WithChildKeyColumn(“GroupID”) .Cascade.SaveUpdate(); 团体:…… HasManyToMany(x […]