DataContract将用于专用的数据访问层类?

时间:2012-06-08 16:12:12

标签: c# .net wcf datacontract circular-reference

我正在玩WCF 4.0。我有一个简单的服务,以下作为DataContract:

[DataContract]
public class WeeklySchedule
{
    [DataMember]
    public DateTime DateMon;
    [DataMember]
    public string DishMon;
    [DataMember]
    public DateTime DateTue;
    [DataMember]
    public string DishTue;
    [DataMember]
    public DateTime DateWed;
    [DataMember]
    public string DishWed;
    [DataMember]
    public DateTime DateThu;
    [DataMember]
    public string DishThu;
    [DataMember]
    public DateTime DateFri;
    [DataMember]
    public string DishFri;
}

我想构建一个单独的类库来保存数据库访问方法。我希望这些方法返回WeeklySchedule对象。

如何避免循环引用呢?

如果我将DAL类引用到WCF服务,我可以使用db方法,但是DAL类不能“看到”DataContract类。

2 个答案:

答案 0 :(得分:2)

我们添加了第三个'层',我们称之为应用程序。它可以访问DTO(您的问题中定义的类)和数据层。然后,应用程序层充当具有所有内容视图的应用程序层。它从数据层获取数据,并在将数据返回给调用者之前完成填充数据协定的工作。因此,它将完成大量的服务工作。

这可以避免您的循环引用。 :)

答案 1 :(得分:0)

由于我缺乏知识,我认为如果我将DataContract和ServiceContract类与WCF服务类分开,我就会遇到问题。

我的问题的解决方案是为契约创建一个公共类库,并让它们由WCF类或数据访问层类访问。