我對NHibernate 3.1使用流利的NHibernate 1.2。我有一個類:流利的NHibernate的自動映射字符串與nvarchar的列表(最大)
public class Marks
{
public virtual int Id { get; set; }
public virtual IList<string> Answers { get; set; }
}
在該商標類別的映射,我有:
HasMany(m => m.Answers).Element("Value");
當創建的表中,「答案」表中出現以下列創建:
Marks_id (FK, int, not null)
Value (nvarchar(255), null)
我想要做的是有價值是nvarchar(最大)。我寧願不爲每個班級的每個班級都做這個,只是爲了這個班級。
我看了這些帖子:first,second,third,但還沒有發現任何有用的東西。
在此先感謝您提供的任何幫助。如果您需要更多信息,請告訴我。
編輯: 這是解決問題的代碼:無論是使用CustomSqlType("nvarchar(max)")
或者多一點普遍
HasMany(x => x.Answers).Element("Value", x => x.Columns.Single().Length = 4001);
這些都沒有工作。如果我設置Map(m => m.Answers).CustomSqlType(「nvarchar(max)」),我收到錯誤「無法確定類型爲:System.Collections.Generic.IList'1」。即使我不想執行通用選項,但我仍嘗試過,並且列仍然保持默認的255長度。 – shakin
啊,我錯過了你收集的字符串。嘗試'HasMany(m => m.Answers).Element(「Value」,e => e.Length(4001))' – NOtherDev
我非常感謝您的幫助。那也行不通。我不知道它是否會有所幫助,但是如果我查看生成的hbm.xml文件,則元素上有一段我以前沒有看到的長度,但它不適用於列。 ' ' –
shakin