나는 일종의 일반적인 저장소를 작성하여 메소드를 추가하려고합니다. 모든 추가 괜찮습니다하지만 외국 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
확인 코드를 업데이트 할 예정입니다. SAVECHANGES()가 발생하면 오류가 발생하지 않습니다. – Penguen
확인. 나는 내 대기열을 재 배열한다. 하지만 내 오류 SaveChanges – Penguen