Как определить сущности POCO (платформа Entity Framework)
Платформа Entity Framework позволяет использовать собственные пользовательские классы данных. Дополнительные сведения см. в разделе Работа с сущностями POCO (платформа Entity Framework). В этом подразделе определен набор типов POCO, которые сопоставляются неявным образом по соответствию имен типов и свойств с моделью данных, определенной в разделе Как настроить файлы моделирования и сопоставления для работы с пользовательскими объектами (платформа Entity Framework). Эта модель основана на таблицах Contact, SalesOrderHeader и SalesOrderDetail базы данных AdventureWorks. Дополнительные сведения об определении настраиваемого класса контекста объекта см. в разделе Как определить контекст пользовательского объекта (платформа Entity Framework).
Пример
В этом примере определены пользовательские классы данных Contact, Order, LineItem и OrderInfo. Эти классы были определены для поддержки создания прокси-объектов. Дополнительные сведения см. в разделе Требования к созданию прокси-сущностей POCO (платформа Entity Framework).
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; }
}