1
各地的網絡搜索後,我發現了一個映射,它得到的大部分工作完成:流利nhibernate地圖IDictionary <int, string>?
在我的課,我有:
public virtual IDictionary<int, string> _properties { get; set; }
而在映射:
HasMany(x => x._properties)
.AsMap<string>(index => index.Column("PropertyID").Type<int>(),
element => element.Column("Value").Type<string>())
.KeyColumn("ID")
.ForeignKeyConstraintName("FK_DeftoProperties")
.Table("Definition_Property")
.Not.LazyLoad()
.Access.Property()
.Cascade.All();
導致在此表中定義:
create table Definition_Property (
ID UNIQUEIDENTIFIER not null,
Value NVARCHAR(255) null,
PropertyID INT not null,
primary key (ID, PropertyID)
)
但是我需要將「Value」設置爲255,並將映射更改爲:
element => element.Column("Value").Type<string>().Length(500)
對錶生成沒有任何影響。
如果我將其使用HBM文件映射:
我得到我預期的表。
有關如何流利設置長度的任何想法?
這不這樣做,我改變了我的代碼:'的hasMany(X => x._properties).AsMap( 「物業ID」).Element( 「值」,X => x.Length( 400)).EntityName(「PropertyID」).KeyColumn(「ID」).ForeignKeyConstraintName(「FK_DeftoProperties」).Table(「Definition_Property」).Not.LazyLoad().Cascade.All(); '它仍然會生成值爲NVARCHAR(255) – Mike
的表格,然後在此處發佈它。我正在使用FHN V 1.2.0.721 [(+)](http://teamcity.codebetter.com/viewType.html?buildTypeId=bt295&tab=buildTypeStatusDiv)。 – VahidN
嗯。這是我使用的相同版本。我甚至將字段名稱更改爲Valuezzz,以確保它在創建表格時使用映射。這可能與我的設置有關。 – Mike