2010-11-10 58 views

回答

2

看看NHibernate.Validator。

該系統允許您通過屬性或XML爲實體添加限制。這些信息稍後可以在您的界面中檢索和使用。

一些閱讀材料:

+0

謝謝,我會在有機會的時候閱讀這些內容。我不知所措! – 2010-11-11 01:35:33

+0

不客氣。 – 2010-11-11 06:02:42

+0

這可能是一個很好的答案,但不幸的是,這些鏈接已停止工作,所以現在不可能知道。 – Markus 2015-11-27 08:24:12

2

我不知道這是否可能使用NHibernate。據我所知,NHibernate可以用來創建數據庫,但它不能從數據庫讀取表屬性。換句話說,它會假設表按照您在映射中聲明它們的方式進行設置,然後在出現問題時發出抱怨。由於Pieter已經說過,您可以使用NHibernate Validator來對您的模型實施約束。如果底層數據庫發生變化,您仍然需要手動更改約束。

+0

不是我想聽的,但如果你是對的,至少你會救我找一個不存在的解決方案的小時的麻煩! – 2010-11-11 01:32:53

2

使用T4 template從表模式讀取長度並自動注入映射或NHibernate驗證器。

這是一點點工作,但如果您擔心DBA經常改變架構,這是要走的路。

或者,如果工作量太大,可以編寫單元測試,將模式中的長度與映射的長度進行比較。如果DBA更新模式但映射未正確更新,這些將會中斷。然後,當你的單元測試中斷時,你知道要更改代碼。

+0

告訴dba不要干涉長度可能不太方便。我會給它一個閱讀雖然。謝謝! – 2010-11-11 01:34:50