Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Hi I was facing same problem.Come up with solution like this</p> <pre><code>namespace ABC { public class EntitiesRepository&lt;T&gt; : IDisposable where T : class { private ObjectContext _context; /// &lt;summary&gt; /// The IObjectSet that represents the current entity. /// &lt;/summary&gt; private ObjectSet&lt;T&gt; _objectSet; public OperationStatus status { get; set; } /// &lt;summary&gt; /// Initializes a new instance of the DataRepository class /// &lt;/summary&gt; public BilderQuizEntitiesRepository() { _context = new Entities(); //DBContext _objectSet = _context.CreateObjectSet&lt;T&gt;(); } public T Select(int id) { EntityKey key = GetEntityKey(id); return (T)_context.GetObjectByKey(key); } public void Delete(T entity) { try { if (entity == null) { throw new ArgumentNullException("entity"); } EntityKey key = GetEntitySpecificKey(entity); T attachEntity = (T)_context.GetObjectByKey(key); _objectSet.DeleteObject(attachEntity); SaveChanges(); } catch { } } public void Delete(int id) { EntityKey key = GetEntityKey(id); Delete((T)_context.GetObjectByKey(key)); SaveChanges(); } public void Update(T entity) { try { if (entity == null) { throw new ArgumentNullException("entity"); } EntityKey key = GetEntitySpecificKey(entity); T attachEntity = (T)_context.GetObjectByKey(key); _objectSet.Attach(attachEntity); _objectSet.ApplyCurrentValues(entity); SaveChanges(); } catch { } } /// &lt;summary&gt; /// Returns Entity Key /// &lt;/summary&gt; /// &lt;param name="keyValue"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; private EntityKey GetEntityKey(object keyValue) //Get EnrityKey { var entitySetName = _context.DefaultContainerName + "." + _objectSet.EntitySet.Name; var keyPropertyName = _objectSet.EntitySet.ElementType.KeyMembers[0].ToString(); var entityKey = new EntityKey(entitySetName, new[] { new EntityKeyMember(keyPropertyName, keyValue) }); return entityKey; } /// &lt;summary&gt; /// Returns Entity Key /// &lt;/summary&gt; /// &lt;param name="keyValue"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; private EntityKey GetEntitySpecificKey(T entity) //Get EnrityKey { Type objType = typeof(T); var keyPropertyName = _objectSet.EntitySet.ElementType.KeyMembers[0].ToString(); var pi = objType.GetProperty(keyPropertyName); var keyValue = pi.GetValue(entity, null); var entitySetName = _context.DefaultContainerName + "." + _objectSet.EntitySet.Name; var entityKey = new EntityKey(entitySetName, new[] { new EntityKeyMember(keyPropertyName, keyValue) }); return entityKey; } private string GetPrimaryKeyValue(T entity) { Type objType = typeof(T); var keyPropertyName = _objectSet.EntitySet.ElementType.KeyMembers[0].ToString(); var pi = objType.GetProperty(keyPropertyName); var keyValue = pi.GetValue(entity, null); return keyValue.ToString(); } /// &lt;summary&gt; /// Saves all context changes /// &lt;/summary&gt; public bool SaveChanges() { return _context.SaveChanges() &gt; 0 ? true : false; } /// &lt;summary&gt; /// Releases all resources used by the WarrantManagement.DataExtract.Dal.ReportDataBase /// &lt;/summary&gt; public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// &lt;summary&gt; /// Releases all resources used by the WarrantManagement.DataExtract.Dal.ReportDataBase /// &lt;/summary&gt; /// &lt;param name="disposing"&gt;A boolean value indicating whether or not to dispose managed resources&lt;/param&gt; protected virtual void Dispose(bool disposing) { if (disposing) { if (_context != null) { _context.Dispose(); _context = null; } } } } } </code></pre> <p>Please let me know if u found a better way to do the same</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload