我想显示一堆我使用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