2
使用SubSonic 3/ActiveRecord,是否有一種比較兩條記錄的簡單方法,無需逐列比較。例如,我想,做這樣的事情的函數(無需編寫爲每個表自定義比較在我的數據庫):SubSonic 3/ActiveRecord - 比較兩條記錄的簡單方法?
public partial class MyTable
{
public IList<SubSonic.Schema.IColumn> Compare(MyTable m)
{
IList<SubSonic.Schema.IColumn> columnsThatDontMatch = new...;
if (this.Field1 != m.Field1)
{
columnsThatDontMatch.add(Field1_Column);
}
if (this.Field2 != m.Field2)
{
columnsThatDontMatch.add(Field2_Column);
}
...
return columnsThatDontMatch;
}
}
最後,我真正需要的是一個用於測試功能兩行之間的平等,不包括主鍵列。上面的僞代碼是一個更一般的形式。我相信,一旦我得到不匹配的列,我將能夠檢查是否有任何列是主鍵字段。
我查看了Columns屬性,但沒有找到任何可以使用的東西。理想情況下,解決方案將是我可以在t4文件中折騰併爲數據庫中的所有表生成的。
最好的辦法可能是將一個表的列的哈希函數添加到t4模板中。那麼這將是一個非常簡單的比較。那麼構建一個合適的哈希程序就會成爲問題。 :( 不知道如何將工作,因此我已經提到它作爲一個評論,而不是一個答案。 – BlackMael 2009-08-22 23:56:18
這可以通過比較ActiveRecord對象中所有列的自定義比較器來完成嗎? – CmdrTallen 2009-08-28 13:53:38