|
Good afternoon,
I was trying to create a sample project with a Master / Details and POCO's and am having a problem.
The property (EntityAspect) of my Detail is always with the null value. What am I doing wrong?
Could you send me an example to work or see what's going on with my example?? SalesOrderHeader: using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using IdeaBlade.EntityModel; namespace SalesPoco { [DataContract] public class SalesOrderHeader : IHasEntityAspect, INotifyPropertyChanged { [Key] [DataMember] public int SalesOrderID { get { return _SalesOrderID; } set { _SalesOrderID = value; OnPropertyChanged("SalesOrderID"); } } private int _SalesOrderID; [DataMember] public int CustomerID { get { return _CustomerID; } set { _CustomerID = value; OnPropertyChanged("CustomerID"); } } private int _CustomerID; [DataMember] public decimal TotalDue { get { return _TotalDue; } set { _TotalDue = value; OnPropertyChanged("TotalDue"); } } private decimal _TotalDue; [DataMember] public string Comment { get { return _Comment; } set { _Comment = value; OnPropertyChanged("Comment"); } } private string _Comment; [DataMember] [Association("SalesOrderHeader_SalesOrderDetail", "SalesOrderID", "SalesOrderID")] public List<SalesOrderDetail> SalesOrderDetails { get { return _SalesOrderDetails; } set { _SalesOrderDetails = value; OnPropertyChanged("SalesOrderDetails"); } } private List<SalesOrderDetail> _SalesOrderDetails; #region IHasEntityAspect Members public EntityAspect EntityAspect { get; set; } #endregion #region INotifyPropertyChanged Members public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string property) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(property)); } } #endregion } } SalesOrderDetail: using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Runtime.Serialization; using IdeaBlade.EntityModel; namespace SalesPoco { [DataContract] public class SalesOrderDetail : IHasEntityAspect, INotifyPropertyChanged { [Key] [DataMember] public int SalesOrderID { get { return _SalesOrderID; } set { _SalesOrderID = value; OnPropertyChanged("SalesOrderID"); } } private int _SalesOrderID; [Key] [DataMember] public int SalesOrderDetailID { get { return _SalesOrderDetailID; } set { _SalesOrderDetailID = value; OnPropertyChanged("SalesOrderDetailID"); } } private int _SalesOrderDetailID; [DataMember] public short OrderQty { get { return _OrderQty; } set { _OrderQty = value; OnPropertyChanged("OrderQty"); } } private short _OrderQty; [DataMember] public int ProductID { get { return _ProductID; } set { _ProductID = value; OnPropertyChanged("ProductID"); } } private int _ProductID; [DataMember] public decimal UnitPrice { get { return _UnitPrice; } set { _UnitPrice = value; OnPropertyChanged("UnitPrice"); } } private decimal _UnitPrice; #region IHasEntityAspect Members public EntityAspect EntityAspect { get; set; } #endregion #region INotifyPropertyChanged Members public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string property) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(property)); } } #endregion } }
Server: using System; using System.Collections.Generic; using IdeaBlade.Core.DomainServices; namespace SalesPoco { [EnableClientAccess] public class SalesPocoServiceProvider { public SalesPocoServiceProvider() { } public IEnumerable<SalesOrderHeader> GetSalesOrderHeader() { IEnumerable<SalesOrderHeader> states = ReadSalesOrderHeader(); return states; } private IEnumerable<SalesOrderHeader> ReadSalesOrderHeader() { List<SalesOrderHeader> lstSalesOrderHeader = new List<SalesOrderHeader>(); SalesOrderHeader orderHeader = new SalesOrderHeader(); orderHeader.SalesOrderID = 1; orderHeader.CustomerID = 123; orderHeader.Comment = "Test"; orderHeader.TotalDue = 12; orderHeader.SalesOrderDetails = ReadSalesOrderDetails(orderHeader.SalesOrderID); lstSalesOrderHeader.Add(orderHeader); return lstSalesOrderHeader; } private List<SalesOrderDetail> ReadSalesOrderDetails(int SalesOrderID) { List<SalesOrderDetail> listOrderDetail = new List<SalesOrderDetail>(); for (int i = 0; i < 4; i++) { SalesOrderDetail orderDetail = new SalesOrderDetail(); orderDetail.SalesOrderID = SalesOrderID; orderDetail.SalesOrderDetailID = i; orderDetail.ProductID = Convert.ToInt32("0011" + i.ToString()); orderDetail.OrderQty = 1; orderDetail.UnitPrice = 10; listOrderDetail.Add(orderDetail); } return listOrderDetail; } } }
Regards,
Sergio Magalhaes
|