c# – 流利的nHibernate自动绘制属性为nvarchar(max)
发布时间:2020-12-15 17:47:47 所属栏目:百科 来源:网络整理
导读:使用流畅的nhibernate和自动映射(nhibernate创建我的数据库模式),我如何使nhibernate基于以下类在数据库中创建一个nvarchar(max)列 public class VirtualPage : BaseEntity{ public virtual int ParentId { get; set; } public virtual string PageName { ge
使用流畅的nhibernate和自动映射(nhibernate创建我的数据库模式),我如何使nhibernate基于以下类在数据库中创建一个nvarchar(max)列
public class VirtualPage : BaseEntity { public virtual int ParentId { get; set; } public virtual string PageName { get; set; } public virtual string Title { get; set; } public virtual string Body { get; set; } public virtual string ViewName { get; set; } public virtual string ViewData { get; set; } // this must be nvarchar(max) } 解决方法
通过自动化,您可以覆盖文本字段的默认长度,但它将应用于所有文本字段.
您应该能够将自动化与使用流畅的API创建的显式映射相结合. 幸运的是,这是一个非常简单的映射类(我假设这是每个子类的层次结构的一部分,这就是为什么我使用SubClassMap而不是ClassMap<>而不映射标识符) : public class VirtualPageMap : SubClassMap<VirtualPage> { public VirtualPageMap() { Map(x => x.ParentId); Map(x => x.PageName); Map(x => x.Title); Map(x => x.Body); Map(x => x.ViewName); Map(x => x.ViewData).Length(4001); // anything over 4000 is nvarchar(max) } } 我实际上从来没有使用过自动映射,所以我假设这将被正确的选择,但不知道肯定. 不要忘记在配置中添加映??射. Fluently.configure( // blah blah blah .Mappings(m => { m.FluentMappings.AddFromAssemblyOf<VirtualPage>(); m.AutoMappings.Add( // blah blah blah } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |