zoukankan      html  css  js  c++  java
  • Silverlight WCF RIA服务(十二) 数据 2

    如何添加元数据类 WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。
      
    如何添加元数据类


    WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。

    有两种方式来添加元数据类。一种是当添加一个新的Domain Service类时,指定自动生成元数据类。还可以手动添加元数据类。下面就介绍这两种方式。

    通过使用Domain Service Class模板来添加元数据类


    1. 在服务端项目中,添加一个新建项并选择Domain Service Class模板。
       
    2. 当出现Add New Domain Service Class对话框时,选择想要公开的实体。
       
    3. 勾选Generate associated classes for metadata选框。
       
    4. 点击OK。就会生成一个Domain service class的文件和一个元数据文件。在元数据类的名字中会包含.metadata,例如:DomainService1.metadata.cs
       
    5. 打开元数据类并添加一些属性如下代码所示:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      [MetadataTypeAttribute(typeof(Address.AddressMetadata))]
      public partial class Address
      {
       
          internal sealed class AddressMetadata
          {
              // Metadata classes are not meant to be instantiated.
              private AddressMetadata()
              {
              }
       
              public int AddressID;
       
              [Required]
              [StringLength(60)]
              public string AddressLine1;
       
              public string AddressLine2;
       
              [Required]
              [StringLength(30)]
              public string City;
       
              public string CountryRegion;
       
              public EntityCollection<CUSTOMERADDRESS> CustomerAddresses;
       
              public DateTime ModifiedDate;
       
              [Required]
              public string PostalCode;
       
              [Exclude]
              public Guid rowguid;
       
              public string StateProvince;
          }
      }

       

    手动添加元数据

    1. 在服务端项目中,添加一个新类。这个类的名字应与想要公开的实体类的名字一致。按照惯例,在名字用包含.metadata。
       
    2. 添加关键字partial来使类成为局部类。下面的代码示例了一个匹配名字为Address实体类的局部类。
      1
      2
      3
      4
      5
      6
      C# Copy Code
      public partial class Address
      {
      }


       
    3. 在局部类中,创建一个internal类作为元数据类。如下:
      1
      2
      3
      4
      5
      6
      7
      8
      public partial class Address
      {
        internal sealed class AddressMetadata
        {
        }
      }


       
    4. 对局部类添加[MetadataTypeAttribute属性,并包含元数据类的类型。代码如下:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      [MetadataTypeAttribute(typeof(Address.AddressMetadata))]
      public partial class Address
      {
        internal sealed class AddressMetadata
        {
        }
      }


       
    5. 在元数据类中,添加和实体类中成员属性同名的成员属性。
       
    6. 对成员属性添加属性批注。示例代码如下:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      [MetadataTypeAttribute(typeof(Address.AddressMetadata))]
      public partial class Address
      {
       
          internal sealed class AddressMetadata
          {
              // Metadata classes are not meant to be instantiated.
              private AddressMetadata()
              {
              }
       
              public int AddressID;
       
              [Required]
              [StringLength(60)]
              public string AddressLine1;
       
              public string AddressLine2;
       
              [Required]
              [StringLength(30)]
              public string City;
       
              public string CountryRegion;
       
              public EntityCollection<CUSTOMERADDRESS> CustomerAddresses;
       
              public DateTime ModifiedDate;
       
              [Required]
              public string PostalCode;
       
              [Exclude]
              public Guid rowguid;
       
              public string StateProvince;
          }
      }

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    Android执行时ART载入OAT文件的过程分析
    Oracle GoldenGate 支持 从SAP HANA database抽取或者复制数据到SAP HANA database 吗?
    【机房收费系统C#版】——导出Excel
    【STL容器学习】-关联容器与map的用法
    IOS
    使用Android Studio 1.3 版本号进行NDK开发
    4443: [Scoi2015]小秃玩矩阵|二分答案|匈牙利
    多版本号并发控制(MVCC)在实际项目中的应用
    memcached远程 telnet 无法连接,解决方案
    Memcached 服务器端命令
  • 原文地址:https://www.cnblogs.com/Areas/p/2172163.html
Copyright © 2011-2022 走看看