我想顯示一堆我使用WPF的不同數據對象。這些數據對象在數據中不同。他們有共同的屬性,但他們也有一些不同的屬性。將會有一個引用這些實體的「主」類。每個主類都可以具有其中的每種數據類型。NHibernate,WCF,WPF架構問題
即使在數據庫級別,我也很難設計它們。我應該爲每個數據對象創建一個表,從而可以輕鬆地使用NHibernate獲取數據(只需引用其中一個實體)。這使得使用WCF很難使用。如果我想要在WPF中顯示這些數據,我可能需要收集一些變體,這就是我沒有的。
我可以將所有數據類型放入同一個表中,並對所有者ID和數據類型ID有多列唯一約束。但是,我可能在我的實體中有空屬性,並且在UI中顯示也很困難。這也會使編輯實體變得複雜,因爲我必須注意用戶可以編輯哪些屬性並且不能編輯。
我想在視覺上,單位應該是這樣的,第一種方式:
public class Master
{
int Id
DataType1 Data1
DataType2 Data2
}
public class DataType1
{
int Id
string SomeString
string AnotherString
}
public class DataType2
{
int Id
string SomeString
string DifferentString
}
而這第二種方式:
public class Master
{
int Id
List<DataType> Types
}
public class DataType
{
int Id
string SomeString
string AnotherString
string DifferentString
}
那麼這將是最好的方式?或者有沒有比這兩種方式更好的方法(可能有)?
這真的取決於很多東西: 1.什麼DataTypes代表?你需要 2.不同的數據類型? Master是否有1,2(最大)或多個(未知)數量的DataType對象? 3.它看起來像Id和SomeString在數據類型中很常見,可以將它們放在基類中?並從該基類繼承? 4.在第二個設計中,DataType AnotherString和DifferentString總會有一個值嗎? – 2012-04-26 20:47:34