Share via

Facebook x.com LinkedIn Email

How to: Define POCO Entities

The Entity Framework enables you to use your own custom data classes. For more information, see Working with POCO Entities. This topic defines a set of POCO types that are implicitly mapped, by having the same type and property names, to the data model that is defined in How to: Customize Modeling and Mapping Files to Work with Custom Objects. This model is based on the Contact, SalesOrderHeader, and SalesOrderDetail tables in the AdventureWorks database. For information on how to define a custom object context class, see How to: Define a Custom Object Context.

Example

This example defines the Contact, Order, LineItem, and OrderInfo custom data classes. These classes have been defined to support proxy object creation. For more information, see Requirements for Creating POCO Proxies.

Public Class LineItem
 Private _SalesOrderID As Int32
 Public Overridable Property SalesOrderID() As Int32
 Get
 Return _SalesOrderID
 End Get
 Set(ByVal value As Int32)
 _SalesOrderID = value
 End Set
 End Property
 Private _SalesOrderDetailID As Int32
 Public Overridable Property SalesOrderDetailID() As Int32
 Get
 Return _SalesOrderDetailID
 End Get
 Set(ByVal value As Int32)
 _SalesOrderDetailID = value
 End Set
 End Property
 Private _CarrierTrackingNumber As String
 Public Overridable Property CarrierTrackingNumber() As String
 Get
 Return _CarrierTrackingNumber
 End Get
 Set(ByVal value As String)
 _CarrierTrackingNumber = value
 End Set
 End Property
 Private _OrderQty As Int16
 Public Overridable Property OrderQty() As Int16
 Get
 Return _OrderQty
 End Get
 Set(ByVal value As Int16)
 _OrderQty = value
 End Set
 End Property
 Private _ProductID As Int32
 Public Overridable Property ProductID() As Int32
 Get
 Return _ProductID
 End Get
 Set(ByVal value As Int32)
 _ProductID = value
 End Set
 End Property
 Private _SpecialOfferID As Int32
 Public Overridable Property SpecialOfferID() As Int32
 Get
 Return _SpecialOfferID
 End Get
 Set(ByVal value As Int32)
 _SpecialOfferID = value
 End Set
 End Property
 Private _UnitPrice As Decimal
 Public Overridable Property UnitPrice() As Decimal
 Get
 Return _UnitPrice
 End Get
 Set(ByVal value As Decimal)
 _UnitPrice = value
 End Set
 End Property
 Private _UnitPriceDiscount As Decimal
 Public Overridable Property UnitPriceDiscount() As Decimal
 Get
 Return _UnitPriceDiscount
 End Get
 Set(ByVal value As Decimal)
 _UnitPriceDiscount = value
 End Set
 End Property
 Private _LineTotal As Decimal
 Public Overridable Property LineTotal() As Decimal
 Get
 Return _LineTotal
 End Get
 Set(ByVal value As Decimal)
 _LineTotal = value
 End Set
 End Property
 Private _rowguid As Guid
 Public Overridable Property rowguid() As Guid
 Get
 Return _rowguid
 End Get
 Set(ByVal value As Guid)
 _rowguid = value
 End Set
 End Property
 Private _ModifiedDate As DateTime
 Public Overridable Property ModifiedDate() As DateTime
 Get
 Return _ModifiedDate
 End Get
 Set(ByVal value As DateTime)
 _ModifiedDate = value
 End Set
 End Property
 ' Defines a navigation property to the Order object. 
 Private _Order As Order
 Public Overridable Property Order() As Order
 Get
 Return _Order
 End Get
 Set(ByVal value As Order)
 _Order = value
 End Set
 End Property
End Class
Public Class Order
 Private _SalesOrderID As Int32
 Public Overridable Property SalesOrderID() As Int32
 Get
 Return _SalesOrderID
 End Get
 Set(ByVal value As Int32)
 _SalesOrderID = value
 End Set
 End Property
 Private _RevisionNumber As Byte
 Public Overridable Property RevisionNumber() As Byte
 Get
 Return _RevisionNumber
 End Get
 Set(ByVal value As Byte)
 _RevisionNumber = value
 End Set
 End Property
 Private _OrderDate As DateTime
 Public Overridable Property OrderDate() As DateTime
 Get
 Return _OrderDate
 End Get
 Set(ByVal value As DateTime)
 _OrderDate = value
 End Set
 End Property
 Private _DueDate As DateTime
 Public Overridable Property DueDate() As DateTime
 Get
 Return _DueDate
 End Get
 Set(ByVal value As DateTime)
 _DueDate = value
 End Set
 End Property
 Private _ShipDate As Nullable(Of DateTime)
 Public Overridable Property ShipDate() As Nullable(Of DateTime)
 Get
 Return _ShipDate
 End Get
 Set(ByVal value As Nullable(Of DateTime))
 _ShipDate = value
 End Set
 End Property
 Private _Status As Byte
 Public Overridable Property Status() As Byte
 Get
 Return _Status
 End Get
 Set(ByVal value As Byte)
 _Status = value
 End Set
 End Property
 Private _OnlineOrderFlag As Boolean
 Public Overridable Property OnlineOrderFlag() As Boolean
 Get
 Return _OnlineOrderFlag
 End Get
 Set(ByVal value As Boolean)
 _OnlineOrderFlag = value
 End Set
 End Property
 Private _SalesOrderNumber As String
 Public Overridable Property SalesOrderNumber() As String
 Get
 Return _SalesOrderNumber
 End Get
 Set(ByVal value As String)
 _SalesOrderNumber = value
 End Set
 End Property
 Private _PurchaseOrderNumber As String
 Public Overridable Property PurchaseOrderNumber() As String
 Get
 Return _PurchaseOrderNumber
 End Get
 Set(ByVal value As String)
 _PurchaseOrderNumber = value
 End Set
 End Property
 Private _AccountNumber As String
 Public Overridable Property AccountNumber() As String
 Get
 Return _AccountNumber
 End Get
 Set(ByVal value As String)
 _AccountNumber = value
 End Set
 End Property
 Private _CustomerID As Int32
 Public Overridable Property CustomerID() As Int32
 Get
 Return _CustomerID
 End Get
 Set(ByVal value As Int32)
 _CustomerID = value
 End Set
 End Property
 Private _ContactID As Int32
 Public Overridable Property ContactID() As Int32
 Get
 Return _ContactID
 End Get
 Set(ByVal value As Int32)
 _ContactID = value
 End Set
 End Property
 Private _SalesPersonID As Nullable(Of Int32)
 Public Overridable Property SalesPersonID() As Nullable(Of Int32)
 Get
 Return _SalesPersonID
 End Get
 Set(ByVal value As Nullable(Of Int32))
 _SalesPersonID = value
 End Set
 End Property
 Private _TerritoryID As Nullable(Of Int32)
 Public Overridable Property TerritoryID() As Nullable(Of Int32)
 Get
 Return _TerritoryID
 End Get
 Set(ByVal value As Nullable(Of Int32))
 _TerritoryID = value
 End Set
 End Property
 Private _BillToAddressID As Int32
 Public Overridable Property BillToAddressID() As Int32
 Get
 Return _BillToAddressID
 End Get
 Set(ByVal value As Int32)
 _BillToAddressID = value
 End Set
 End Property
 Private _ShipToAddressID As Int32
 Public Overridable Property ShipToAddressID() As Int32
 Get
 Return _ShipToAddressID
 End Get
 Set(ByVal value As Int32)
 _ShipToAddressID = value
 End Set
 End Property
 Private _ShipMethodID As Int32
 Public Overridable Property ShipMethodID() As Int32
 Get
 Return _ShipMethodID
 End Get
 Set(ByVal value As Int32)
 _ShipMethodID = value
 End Set
 End Property
 Private _CreditCardID As Nullable(Of Int32)
 Public Overridable Property CreditCardID() As Nullable(Of Int32)
 Get
 Return _CreditCardID
 End Get
 Set(ByVal value As Nullable(Of Int32))
 _CreditCardID = value
 End Set
 End Property
 Private _CreditCardApprovalCode As String
 Public Overridable Property CreditCardApprovalCode() As String
 Get
 Return _CreditCardApprovalCode
 End Get
 Set(ByVal value As String)
 _CreditCardApprovalCode = value
 End Set
 End Property
 Private _CurrencyRateID As Nullable(Of Int32)
 Public Overridable Property CurrencyRateID() As Nullable(Of Int32)
 Get
 Return _CurrencyRateID
 End Get
 Set(ByVal value As Nullable(Of Int32))
 _CurrencyRateID = value
 End Set
 End Property
 Private _SubTotal As Decimal
 Public Overridable Property SubTotal() As Decimal
 Get
 Return _SubTotal
 End Get
 Set(ByVal value As Decimal)
 _SubTotal = value
 End Set
 End Property
 Private _TaxAmt As Decimal
 Public Overridable Property TaxAmt() As Decimal
 Get
 Return _TaxAmt
 End Get
 Set(ByVal value As Decimal)
 _TaxAmt = value
 End Set
 End Property
 Private _Freight As Decimal
 Public Overridable Property Freight() As Decimal
 Get
 Return _Freight
 End Get
 Set(ByVal value As Decimal)
 _Freight = value
 End Set
 End Property
 Private _TotalDue As Decimal
 Public Overridable Property TotalDue() As Decimal
 Get
 Return _TotalDue
 End Get
 Set(ByVal value As Decimal)
 _TotalDue = value
 End Set
 End Property
 Private _Comment As String
 Public Overridable Property Comment() As String
 Get
 Return _Comment
 End Get
 Set(ByVal value As String)
 _Comment = value
 End Set
 End Property
 Private _rowguid As Guid
 Public Overridable Property rowguid() As Guid
 Get
 Return _rowguid
 End Get
 Set(ByVal value As Guid)
 _rowguid = value
 End Set
 End Property
 Private _ModifiedDate As DateTime
 Public Overridable Property ModifiedDate() As DateTime
 Get
 Return _ModifiedDate
 End Get
 Set(ByVal value As DateTime)
 _ModifiedDate = value
 End Set
 End Property
 Private _ExtendedInfo As OrderInfo
 Public Overridable Property ExtendedInfo() As OrderInfo
 Get
 Return _ExtendedInfo
 End Get
 Set(ByVal value As OrderInfo)
 _ExtendedInfo = value
 End Set
 End Property
 ' Defines a navigation property to the collection of LineItem objects. 
 Private _LineItems As ICollection(Of LineItem)
 Public Overridable Property LineItems() As ICollection(Of LineItem)
 Get
 Return _LineItems
 End Get
 Set(ByVal value As ICollection(Of LineItem))
 _LineItems = value
 End Set
 End Property
 ' Defines a navigation property to the Contact object. 
 Private _Contact As Contact
 Public Overridable Property Contact() As Contact
 Get
 Return _Contact
 End Get
 Set(ByVal value As Contact)
 _Contact = value
 End Set
 End Property
End Class
Public Class OrderInfo
 Private _SalesOrderNumber As String
 Public Property SalesOrderNumber() As String
 Get
 Return _SalesOrderNumber
 End Get
 Set(ByVal value As String)
 _SalesOrderNumber = value
 End Set
 End Property
 Private _PurchaseOrderNumber As String
 Public Property PurchaseOrderNumber() As String
 Get
 Return _PurchaseOrderNumber
 End Get
 Set(ByVal value As String)
 _PurchaseOrderNumber = value
 End Set
 End Property
 Private _AccountNumber As String
 Public Property AccountNumber() As String
 Get
 Return _AccountNumber
 End Get
 Set(ByVal value As String)
 _AccountNumber = value
 End Set
 End Property
 Private _Comment As String
 Public Property Comment() As String
 Get
 Return _Comment
 End Get
 Set(ByVal value As String)
 _Comment = value
 End Set
 End Property
End Class
Public Class Contact
 Private _ContactID As Int32
 Public Overridable Property ContactID() As Int32
 Get
 Return _ContactID
 End Get
 Set(ByVal value As Int32)
 _ContactID = value
 End Set
 End Property
 Private _NameStyle As Boolean
 Public Overridable Property NameStyle() As Boolean
 Get
 Return _NameStyle
 End Get
 Set(ByVal value As Boolean)
 _NameStyle = value
 End Set
 End Property
 Private _Title As String
 Public Overridable Property Title() As String
 Get
 Return _Title
 End Get
 Set(ByVal value As String)
 _Title = value
 End Set
 End Property
 Private _FirstName As String
 Public Overridable Property FirstName() As String
 Get
 Return _FirstName
 End Get
 Set(ByVal value As String)
 _FirstName = value
 End Set
 End Property
 Private _MiddleName As String
 Public Overridable Property MiddleName() As String
 Get
 Return _MiddleName
 End Get
 Set(ByVal value As String)
 _MiddleName = value
 End Set
 End Property
 Private _LastName As String
 Public Overridable Property LastName() As String
 Get
 Return _LastName
 End Get
 Set(ByVal value As String)
 _LastName = value
 End Set
 End Property
 Private _Suffix As String
 Public Overridable Property Suffix() As String
 Get
 Return _Suffix
 End Get
 Set(ByVal value As String)
 _Suffix = value
 End Set
 End Property
 Private _EmailAddress As String
 Public Overridable Property EmailAddress() As String
 Get
 Return _EmailAddress
 End Get
 Set(ByVal value As String)
 _EmailAddress = value
 End Set
 End Property
 Private _EmailPromotion As Int32
 Public Overridable Property EmailPromotion() As Int32
 Get
 Return _EmailPromotion
 End Get
 Set(ByVal value As Int32)
 _EmailPromotion = value
 End Set
 End Property
 Private _Phone As String
 Public Overridable Property Phone() As String
 Get
 Return _Phone
 End Get
 Set(ByVal value As String)
 _Phone = value
 End Set
 End Property
 Private _PasswordHash As String
 Public Overridable Property PasswordHash() As String
 Get
 Return _PasswordHash
 End Get
 Set(ByVal value As String)
 _PasswordHash = value
 End Set
 End Property
 Private _PasswordSalt As String
 Public Overridable Property PasswordSalt() As String
 Get
 Return _PasswordSalt
 End Get
 Set(ByVal value As String)
 _PasswordSalt = value
 End Set
 End Property
 Private _AdditionalContactInfo As String
 Public Overridable Property AdditionalContactInfo() As String
 Get
 Return _AdditionalContactInfo
 End Get
 Set(ByVal value As String)
 _AdditionalContactInfo = value
 End Set
 End Property
 Private _rowguid As Guid
 Public Overridable Property rowguid() As Guid
 Get
 Return _rowguid
 End Get
 Set(ByVal value As Guid)
 _rowguid = value
 End Set
 End Property
 Private _ModifiedDate As DateTime
 Public Overridable Property ModifiedDate() As DateTime
 Get
 Return _ModifiedDate
 End Get
 Set(ByVal value As DateTime)
 _ModifiedDate = value
 End Set
 End Property
 ' Defines a navigation property to the collection of Order objects. 
 Private _Orders As ICollection(Of Order)
 Public Overridable Property Orders() As ICollection(Of Order)
 Get
 Return _Orders
 End Get
 Set(ByVal value As ICollection(Of Order))
 _Orders = value
 End Set
 End Property
End Class
public class LineItem
{
 public virtual Int32 SalesOrderID { get; set; }
 public virtual Int32 SalesOrderDetailID { get; set; }
 public virtual String CarrierTrackingNumber { get; set; }
 public virtual Int16 OrderQty { get; set; }
 public virtual Int32 ProductID { get; set; }
 public virtual Int32 SpecialOfferID { get; set; }
 public virtual Decimal UnitPrice { get; set; }
 public virtual Decimal UnitPriceDiscount { get; set; }
 public virtual Decimal LineTotal { get; set; }
 public virtual Guid rowguid { get; set; }
 public virtual DateTime ModifiedDate { get; set; }
 // Defines a navigation property to the Order object.
 public virtual Order Order { get; set; }
}
public class Order
{
 public virtual Int32 SalesOrderID { get; set; }
 public virtual Byte RevisionNumber { get; set; }
 public virtual DateTime OrderDate { get; set; }
 public virtual DateTime DueDate { get; set; }
 public virtual Nullable<DateTime> ShipDate { get; set; }
 public virtual Byte Status { get; set; }
 public virtual Boolean OnlineOrderFlag { get; set; }
 public virtual String SalesOrderNumber { get; set; }
 public virtual String PurchaseOrderNumber { get; set; }
 public virtual String AccountNumber { get; set; }
 public virtual Int32 CustomerID { get; set; }
 public virtual Int32 ContactID { get; set; }
 public virtual Nullable<Int32> SalesPersonID { get; set; }
 public virtual Nullable<Int32> TerritoryID { get; set; }
 public virtual Int32 BillToAddressID { get; set; }
 public virtual Int32 ShipToAddressID { get; set; }
 public virtual Int32 ShipMethodID { get; set; }
 public virtual Nullable<Int32> CreditCardID { get; set; }
 public virtual String CreditCardApprovalCode { get; set; }
 public virtual Nullable<Int32> CurrencyRateID { get; set; }
 public virtual Decimal SubTotal { get; set; }
 public virtual Decimal TaxAmt { get; set; }
 public virtual Decimal Freight { get; set; }
 public virtual Decimal TotalDue { get; set; }
 public virtual String Comment { get; set; }
 public virtual Guid rowguid { get; set; }
 public virtual DateTime ModifiedDate { get; set; }
 public virtual OrderInfo ExtendedInfo { get; set; }
 // Defines a navigation property to the collection of LineItem objects.
 public virtual ICollection<LineItem> LineItems { get; set; }
 // Defines a navigation property to the Contact object.
 public virtual Contact Contact { get; set; }
}
public class OrderInfo
{
 public string SalesOrderNumber { get; set; }
 public string PurchaseOrderNumber { get; set; }
 public string AccountNumber { get; set; }
 public string Comment { get; set; }
}
public class Contact
{
 public virtual Int32 ContactID { get; set; }
 public virtual Boolean NameStyle { get; set; }
 public virtual String Title { get; set; }
 public virtual String FirstName { get; set; }
 public virtual String MiddleName { get; set; }
 public virtual String LastName { get; set; }
 public virtual String Suffix { get; set; }
 public virtual String EmailAddress { get; set; }
 public virtual Int32 EmailPromotion { get; set; }
 public virtual String Phone { get; set; }
 public virtual String PasswordHash { get; set; }
 public virtual String PasswordSalt { get; set; }
 public virtual String AdditionalContactInfo { get; set; }
 public virtual Guid rowguid { get; set; }
 public virtual DateTime ModifiedDate { get; set; }
 // Defines a navigation property to the collection of Order objects.
 public virtual ICollection<Order> Orders { get; set; }
}

See Also

Concepts

Customizing Objects


  • Last updated on 2011年04月12日