You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FluentNHibernate设置含斜杠的默认值时抛出异常

解决FluentNHibernate映射含斜杠默认值的问题

你遇到的问题是因为NHibernate生成SQL时,会把反斜杠识别为转义符,导致路径字符串被错误解析。以下是两种可靠的解决方法:

  • 用单引号包裹路径并添加Unicode标识
    在Default方法中,用单引号把路径包裹,同时前缀加上N来支持Unicode,确保SQL能正确识别整个路径:

    Map(x => x.FilePath).Length(500).Not.Nullable().Default(@"N'C:\Program Files\server\data\conf\groups.txt'");
    
  • 正确转义反斜杠
    如果你不用逐字字符串(不带@),需要用双反斜杠转义路径里的反斜杠,同时用单引号包裹:

    Map(x => x.FilePath).Length(500).Not.Nullable().Default("'C:\\Program Files\\server\\data\\conf\\groups.txt'");
    

    要是用逐字字符串(带@),则需要把单引号写成两个单引号来转义:

    Map(x => x.FilePath).Length(500).Not.Nullable().Default(@"'C:\Program Files\server\data\conf\groups.txt'");
    

本质原因是FluentNHibernate的Default方法会直接将传入的字符串拼接进SQL语句,反斜杠在SQL中属于转义符,必须通过上述方式处理,才能让SQL将其识别为路径的一部分。

内容的提问来源于stack exchange,提问作者Kavin404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:18:18