0
我正在將Castle ActiveRecord連接到舊數據庫,並且無法連接一對多關係。問題是外鍵沒有引用另一個表的主鍵,它使用另一個列。不使用主鍵的Castle ActiveRecord關係
這些都是表(簡稱爲清楚起見):
CREATE TABLE [Rule](
[ID] [uniqueidentifier] NOT NULL,
[HeadingID] [int] NULL
)
CREATE TABLE [Heading](
[ID] [uniqueidentifier] NOT NULL,
[ID2] [int] NOT NULL
)
在規則表中的HeadingID字段是一個外鍵它引用標題中的ID2領域。
所以,在規則類的定義,我有:
[BelongsTo(Column = "HeadingID", PropertyRef = "OrderID")]
public virtual Heading Heading { get; set; }
這似乎做工精細,我可以沒有問題訪問規則的標題(如果我設置的hasMany懶當然) 。
在標題類的定義,我有:
[HasMany(Lazy = true)]
public IList<Rule> Rules { get; set; }
當我訪問集合我得到一個SQL例外「操作數類型衝突:唯一標識符是與詮釋不兼容。」 它看起來像AR試圖做一個選擇這樣的(爲了清楚而簡化):
SELECT ... FROM Rule rules0_ ... WHERE rules0_.HeadingID = ?
在哪裏?是Heading.ID的GUID(它應該是來自Heading.ID2的int)。
我找不到HasMany的一個屬性,它允許我設置外鍵引用的列。有沒有辦法做到這一點?