0
我嘗試編寫一種通用庫來添加方法。 一切正常補充,但我有一個與外國KEY.But不工作,因爲外鍵 如果有外鍵(EF-4),如何使用通用存儲庫添加新值?
public class DomainRepository<TModel> : IDomainRepository<TModel> where TModel : class
{
private ObjectContext _context;
private IObjectSet<TModel> _objectSet;
public DomainRepository(ObjectContext context)
{
_context = context;
_objectSet = _context.CreateObjectSet<TModel>();
}
// do something...
public TModel Add<TModel>(TModel entity) where TModel : IEntityWithKey
{
EntityKey key = _context.CreateEntityKey(entity.GetType().Name, entity);
_context.AddObject(key.EntitySetName, entity);
_context.SaveChanges();
return entity;
}
// do something...
}
調用庫的兩個表相關的表:
// insert-update-delete
public partial class AddtoTables
{
public table3 Add(int TaskId, int RefAircraftsId)
{
using (DomainRepository<table3> repTask = new DomainRepository<table3>(new TaskEntities()))
{
return repTask.Add<table3>(new table3() { TaskId = TaskId, TaskRefAircraftsID = RefAircraftsId });
}
}
}
如果此表包含外鍵關係,如何添加新值?
如果對象已經存在,您正在進行隱式更新。不要這樣做,因爲這是一堆蠕蟲。你應該區分插入和更新。 – Steven 2010-12-23 12:31:34
好的,我會更新我的代碼。但是在這個錯誤中不會發生錯誤SAVECHANGES()。 – Penguen 2010-12-23 12:45:56