NHibernate,WCF,WPF架构问题

时间:2011-03-15 12:38:33

标签: c# wpf wcf nhibernate

我想使用WPF显示一堆不同的数据对象。这些数据对象的数据不同。它们具有共同的属性,但它们也具有一些不同的属性。将有一个引用这些实体的“主”类。每个主类可以具有这些数据类型中的每一种。

我发现即使在数据库级别也很难设计它们。我应该为每个数据对象配备一个表,从而可以使用NHibernate轻松获取数据(只需参考其中一个实体)。这使得使用WCF消费非常困难。如果我想在WPF中显示这些数据,我可能需要一些变化的集合,这就是我没有的。

我可以将所有数据类型放在同一个表中,并对所有者ID和数据类型id具有多列唯一约束。但是我的实体中可能有null属性,并且在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 个答案:

答案 0 :(得分:0)

这实际上取决于您的业务案例,因为它不是一个架构问题。如果已知数量的DataType-s执行静态(一对一)引用(第一个示例)。

如果您有未知或动态数量的DataType-s,除了将这些DataType-s作为“Master”对象中的列表之外别无选择。