Hello,
I am
working on a WCF application and have a question about the best approach for
adding and updating objects with DataAcess.
I have the
following new dataobject that I want to save, this dataobject is send to a WCF
service, so it’s not attached to any context. To Add it I call the Add-method
followed by the SaveChanges method on the context (a IUnitOfWork instance).
public class Order{ private int _orderID; private int _orderTypeID; private DateTime _orderDate; private OrderType _orderType; [DataMember] public int OrderID { get { return _orderID; } set { _orderID = value; } } [DataMember] public int OrderTypeID { get { return _orderTypeID; } set { _orderTypeID = value; } } [DataMember] public DateTime OrderDate { get { return _orderDate; } set { _orderDate = value; } } [DataMember] public OrderType OrderType { get { return _orderType; } set { _orderType = value; } }}public class OrderType { private int _orderTypeID; private string _typeName; [DataMember] public int OrderTypeID { get { return _orderTypeID; } set { _orderTypeID = value; } } [DataMember] public string TypeName { get { return _typeName; } set { _typeName = value; } }}
When I save
this and the OrderType reference is set, the DataAccess layer is trying to add
this OrderType again to the database and I receive an SQL exception.
What is the
recommended approach to “tell” the DataAcess layer that it only needs to add the
reference objects when they do not exist yet in the database?
I seen
another thread with this qeuestion (http://www.telerik.com/forums/handling-reference-objects-in-the-disconnected-api)
but that is an very old thread and I assume there is a much more convenient way
to overcome this problem now.
Regards,
Marcel