2009-10-02 28 views
0

我是uisng Silverlight 3和ADO.NET数据服务与cusotm-built模型(单独项目)和DAL(单独项目))。在我的Silverlight项目中,我创建了一个引用我的.svc文件的[Service Reference],该文件又指向我的Model。Silverlight 3架构和实现DataAnnotations - Adivce

这里是我的问题:我想使用DataAnnotations(System.ComponentModel.DataAnnotations)的丰富功能,但我究竟在哪里放这些属性?如果我用这些注释装饰模型,我没有看到他们在我的[服务参考]生成的代理代码中呈现。我只看到我的类与其成员,但没有DataAnnotations(Reference.cs)。

我知道如果我手动更改(Reference.cs)文件并添加一些DataAnnotations,这些更改就会通过我的Silverlight客户端。我不相信我应该更新生成的代码,即(Reference.cs)中的代理代码w /。所以,我的问题是,在我分离的项目(Web,SL,Model,DAL)的Visual Studio结构中,是否抛出/扩展此自定义数据源(Model)以利用DataAnnotations?

我想是这样的:

[Required] 
public string FirstName 
{ 
    get 
    { 
     return this._FirstName; 
    } 
    set 
    { 
     this.OnFirstNameChanging(value); 
     this._FirstName = value; 
     this.OnFirstNameChanged(); 
    } 
} 

回答

0

我有一个替代代码生成生产ADO.NET数据服务代理类,并在验证我的尼亚加拉大项目自动添加:

http://niagara.codeplex.com

+0

谢谢Shawn的回复。除了使用你的项目(我下载代码并尝试构建之后需要密码),你能帮我解答我的问题吗? 如何扩展由代理服务生成的部分类来装饰我的成员? – user118190 2009-10-09 21:32:56

0

我认为检查this文章可能会让你对Shawn为什么发表他的评论有所了解。你的问题的简短答案是。遵循Silverlight开发的ModelView-View-Model(MVVM)风格,然后将DataAnnotations放置在模型中的属性上,这是一个巨大的主题,需要先阅读并理解它。我建议你检查一下RIA服务(我认为它现在称为WCF服务),如果你想将验证逻辑从WCF服务传播回客户端,这将帮助你解决很多问题。