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