我有一個名爲 '投標' 和下面的實體是有關這個問題的代碼:爲什麼Guid在保存記錄時會發生變化?
類:
public class Bid
{
public virtual Guid Id { get; set; }
}
映射文件:
<id name="Id" column="Id" type="Guid">
<generator class="guid.comb" />
</id>
數據類型在Oracle中:
Raw(16)
當我保存一個類型爲'Bid'的新對象時(Repository.Sa VE(BID))由C#生成的ID是
db27b33c75314b41b171a1620130061a
和一個保存在Oracle表是
3CB327DB3175414BB171A1620130061A
如果你仔細看,ID下半年是一樣的,但上半場不是。
有人能告訴我如何更改我的代碼,以便由C#生成的Id得到保存,因爲它?
我已經嘗試了生成器類'分配'和'guid.native',並嘗試在oracle中將數據類型更改爲varchar2(32),但無濟於事。
如果將列類型更改爲字符串(在映射文件中並在類中)並將值手動分配給新的GUID,該怎麼辦? – 2013-02-11 13:08:02
我會嘗試,但數據庫中的數據類型不會改變的解決方案將是理想的。我不介意更改映射文件或類中的類型。 – mridula 2013-02-11 13:10:11
什麼是NHibernate版本? oracle方言已被設計爲將C#Guid映射到RAW16。 – 2013-02-11 13:13:09