Fluent NHibernate生成的列名别名太长 - c#

给定表列名称为ColumnNameIsVeryVeryLong

FluentNhibernate这样生成SQL ...

SELECT tablename0_.ColumnNameIsVeryVeryLong as ColumnNameIsVeryVeryLong2743_0_
FROM ...etc.

问题是基础Sybase数据库仅支持最多30个字节的标识符,因此生成的列别名ColumnNameIsVeryVeryLong2743_0_会产生以下错误。

Sybase.Data.AseClient.AseException : The identifier that starts with 'ColumnNameIsVeryVeryLong2743_0_' is too long. Maximum length is 30.

有什么方法可以控制生成的列别名的长度?更改列名不是一种选择。

参考方案

子类化方言并覆盖最大长度:

public class DialectOverride: *BaseDialect*
{
  public override int MaxAliasLength { get { return 30; } } 
}

然后在配置时指定方言:

new DatabaseConfiguration().Dialect<DialictOverride>()

NHibernate是否有时不返回代理对象? - c#

我正在学习Fluent NHibernate(以及扩展的NHibernate)。我正在使用带有一些替代的自动映射,但是我认为这对这个问题并不重要(当然,如果我错了,我会很乐意更新这个问题)。给定一个ISession(以及更多假定的变量),我可以按其ID返回实体:using (var session = SessionFactory.OpenSession()…

简单的FluentNHibernate父/子映射 - c#

FluentNHibernate = D的新手我有一个父母/孩子类,如下所示:public class Parent { public virtual int ID { get; private set; } public virtual string Name { get; set; } public virtual IList<Child> …

将字符串分配给numpy.zeros数组[重复] - python

This question already has answers here: Weird behaviour initializing a numpy array of string data                                                                    (4个答案)         …

流利的断言应全部等同于 - c#

我不确定FluentAssertions的旧版本是否具有此功能,但我想将一个集合与另一个集合进行比较。我有一个像这样的dto:public class UserDTO { public int Id { get; set; } public string Username { get; set; } } 我想比较两个清单。 List<UserDTO&g…

TypeError:'str'对象不支持项目分配,带有json文件的python - python

以下是我的代码import json with open('johns.json', 'r') as q: l = q.read() data = json.loads(l) data['john'] = '{}' data['john']['use…