2009-02-04 31 views
1

我正在使用城堡活動記錄的項目。我今天偶然發現了AR關聯中的「Insert = true」屬性參數,但我無法確定它實際做了什麼。什麼是插入=真正的意思是在城堡活動記錄協會

[BelongsTo("UserId",Insert = true)] 
public ARUser User { 
    get { return mUser; } 
    set { mUser = value; } 
} 

有人能給我一個線索嗎?我無法在文檔中找到答案。

回答

4

是的,你會發現插入和屬性上幾AR更新屬性..

我不得不做一些測試,以確保我理解的文檔。

有兩種更新和插入設置爲false表示該屬性將是隻讀訪問您的數據庫(與公共setter方法,這可能會比較混亂。)

[Property(Insert=false, Update=false)] 
public virtual string Name { get; set; } 

已經更新設置爲true,並插入到假表示設置此屬性,然後插入元素將不會在數據庫中設置該值。

[Property(Insert=false)] 
public virtual DateTime Created { get; set; } 

至於使用情況,你是你自己的。

+0

一種使用場景是如果您使用類型安全的枚舉模式。您創建一個具有由實際對象實例支持的靜態屬性的類。這使您可以像訪問枚舉一樣訪問靜態類屬性,但幕後實例作爲實體而不是值保存到數據庫中。這樣做的好處是您可以添加其他字段,如「排序」和「顯示名稱」,而不會丟失不可變的枚舉的外觀。 – 2010-01-09 07:28:52

0

documentation - 設置爲false以在插入此ActiveRecord類的實體時忽略此關聯。