AdventureWorks モデルに基づくシリアル化可能な POCO クラス

この例には、シリアル化可能な POCO エンティティ クラスとカスタム オブジェクト コンテキスト クラスの定義が含まれています。 POCO エンティティ クラスは、カスタム オブジェクトを操作できるようにモデリング ファイルとマッピング ファイルをカスタマイズする方法 (Entity Framework) で定義される AdventureWorks データ モデルに基づいています。

アプリケーションのコード ページで、次の using ステートメント (Visual Basic の場合は Imports) を追加します。

using System.Data.Objects;
using System.Runtime.Serialization;
#region Contexts

public partial class POCOAdventureWorksEntities : ObjectContext
{
    private ObjectSet<Contact> _contacts;
    private ObjectSet<LineItem> _lineItems;
    private ObjectSet<Order> _orders;
    #region Constructors
    public POCOAdventureWorksEntities()
        : base("name=AdventureWorksEntities", "AdventureWorksEntities")
    {
    }

    public POCOAdventureWorksEntities(string connectionString)
        : base(connectionString, "AdventureWorksEntities")
    {
    }
    #endregion

    #region ObjectSet Properties
    public ObjectSet<Contact> Contacts
    {
        get
        {
            return _contacts ?? (_contacts = base.CreateObjectSet<Contact>());
        }
    }

    public ObjectSet<LineItem> LineItems
    {
        get
        {
            return _lineItems ?? (_lineItems = base.CreateObjectSet<LineItem>());
        }
    }

    public ObjectSet<Order> Orders
    {
        get
        {
            return _orders ?? (_orders = base.CreateObjectSet<Order>());
        }
    }
    #endregion
}
#endregion


#region Entities
[DataContract(IsReference = true)]
public class LineItem
{
    [DataMember]
    public virtual Int32 SalesOrderID { get; set; }
    [DataMember]
    public virtual Int32 SalesOrderDetailID { get; set; }
    [DataMember]
    public virtual String CarrierTrackingNumber { get; set; }
    [DataMember]
    public virtual Int16 OrderQty { get; set; }
    [DataMember]
    public virtual Int32 ProductID { get; set; }
    [DataMember]
    public virtual Int32 SpecialOfferID { get; set; }
    [DataMember]
    public virtual Decimal UnitPrice { get; set; }
    [DataMember]
    public virtual Decimal UnitPriceDiscount { get; set; }
    [DataMember]
    public virtual Decimal LineTotal { get; set; }
    [DataMember]
    public virtual Guid rowguid { get; set; }
    [DataMember]
    public virtual DateTime ModifiedDate { get; set; }
    [DataMember]
    // Defines a navigation property to the Order object.
    public virtual Order Order { get; set; }
}

[DataContract(IsReference = true)]
public class Order
{
    [DataMember]
    public virtual Int32 SalesOrderID { get; set; }
    [DataMember]
    public virtual Byte RevisionNumber { get; set; }
    [DataMember]
    public virtual DateTime OrderDate { get; set; }
    [DataMember]
    public virtual DateTime DueDate { get; set; }
    [DataMember]
    public virtual Nullable<DateTime> ShipDate { get; set; }
    [DataMember]
    public virtual Byte Status { get; set; }
    [DataMember]
    public virtual Boolean OnlineOrderFlag { get; set; }
    [DataMember]
    public virtual String SalesOrderNumber { get; set; }
    [DataMember]
    public virtual String PurchaseOrderNumber { get; set; }
    [DataMember]
    public virtual String AccountNumber { get; set; }
    [DataMember]
    public virtual Int32 CustomerID { get; set; }
    [DataMember]
    public virtual Int32 ContactID { get; set; }
    [DataMember]
    public virtual Nullable<Int32> SalesPersonID { get; set; }
    [DataMember]
    public virtual Nullable<Int32> TerritoryID { get; set; }
    [DataMember]
    public virtual Int32 BillToAddressID { get; set; }
    [DataMember]
    public virtual Int32 ShipToAddressID { get; set; }
    [DataMember]
    public virtual Int32 ShipMethodID { get; set; }
    [DataMember]
    public virtual Nullable<Int32> CreditCardID { get; set; }
    [DataMember]
    public virtual String CreditCardApprovalCode { get; set; }
    [DataMember]
    public virtual Nullable<Int32> CurrencyRateID { get; set; }
    [DataMember]
    public virtual Decimal SubTotal { get; set; }
    [DataMember]
    public virtual Decimal TaxAmt { get; set; }
    [DataMember]
    public virtual Decimal Freight { get; set; }
    [DataMember]
    public virtual Decimal TotalDue { get; set; }
    [DataMember]
    public virtual String Comment { get; set; }
    [DataMember]
    public virtual Guid rowguid { get; set; }
    [DataMember]
    public virtual DateTime ModifiedDate { get; set; }
    [DataMember]
    public virtual OrderInfo ExtendedInfo { get; set; }
    [DataMember]
    // Defines a navigation property to the collection of LineItem objects.
    public virtual ICollection<LineItem> LineItems { get; set; }
    [DataMember]
    // Defines a navigation property to the Contact object.
    public virtual Contact Contact { get; set; }
}

[DataContract(IsReference = true)]
public class OrderInfo
{
    [DataMember]
    public string SalesOrderNumber { get; set; }
    [DataMember]
    public string PurchaseOrderNumber { get; set; }
    [DataMember]
    public string AccountNumber { get; set; }
    [DataMember]
    public string Comment { get; set; }
}

[DataContract(IsReference = true)]
public class Contact
{
    [DataMember]
    public virtual Int32 ContactID { get; set; }
    [DataMember]
    public virtual Boolean NameStyle { get; set; }
    [DataMember]
    public virtual String Title { get; set; }
    [DataMember]
    public virtual String FirstName { get; set; }
    [DataMember]
    public virtual String MiddleName { get; set; }
    [DataMember]
    public virtual String LastName { get; set; }
    [DataMember]
    public virtual String Suffix { get; set; }
    [DataMember]
    public virtual String EmailAddress { get; set; }
    [DataMember]
    public virtual Int32 EmailPromotion { get; set; }
    [DataMember]
    public virtual String Phone { get; set; }
    [DataMember]
    public virtual String PasswordHash { get; set; }
    [DataMember]
    public virtual String PasswordSalt { get; set; }
    [DataMember]
    public virtual String AdditionalContactInfo { get; set; }
    [DataMember]
    public virtual Guid rowguid { get; set; }
    [DataMember]
    public virtual DateTime ModifiedDate { get; set; }
    [DataMember]
    // Defines a navigation property to the collection of Order objects.
    public virtual ICollection<Order> Orders { get; set; }
}
#endregion

参照

概念

POCO エンティティの使用 (Entity Framework)