0
我使用ClassMapping与NHibernate。我的属性之一,这样创建的索引:NHibernate ClassMapping创建自动唯一键
public class ShopMapping : ClassMapping<Shop>
{
public ShopMapping()
{
Table("Shops");
Id(p => p.Id, m => m.Generator(NHibernate.Mapping.ByCode.Generators.GuidComb));
Property(p => p.CountryCode, m =>
{
m.Length(10);
m.NotNullable(true);
m.Index("ShopCountryCodeIdx");
m.Unique(false);
});
}
}
这会生成一个名为ShopCountryCodeIdx指数,但我也有一个独特的指数,称为“COUNTRYCODE”在同一列。我试了一下没有m.Unique(false),但没有效果。 我刚搬到一台新电脑。旧电脑:32位VS2012和新电脑:64位VS2015。 NHiberate版本都是相同的(3.4.1.4)。数据库是MySQL 5.7(在我使用MySQL 5.5的旧机器上)。 这怎么可能?
我只是重新运行代码(使用drop database object等),并用m.Unique(false)重新创建表,结果仍然在一个额外的索引'CountryCode'(不唯一)。忘了告诉CountryCode属性确实存在于多个对象中,所有这些与对象有关的表都有一个额外的索引'CountryCode' –
编辑:遇到一些缓存问题,我猜CountryCode索引仍然是'唯一的'... :( –