c# – 流利的nHibernate自动绘制属性为nvarchar(max)

c# – 流利的nHibernate自动绘制属性为nvarchar(max),第1张

概述使用流畅的nhibernate和自动映射(nhibernate创建我的数据库模式),我如何使nhibernate基于以下类在数据库中创建一个nvarchar(max)列 public class VirtualPage : BaseEntity{ public virtual int ParentId { get; set; } public virtual string Pag 使用流畅的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.@R_502_6843@MapPings.Add( // blah blah blah    }
总结

以上是内存溢出为你收集整理的c# – 流利的nHibernate自动绘制属性为nvarchar(max)全部内容,希望文章能够帮你解决c# – 流利的nHibernate自动绘制属性为nvarchar(max)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1237165.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存