0
私は分割がデータベースから取得されるので、このコードは、新しいDivision
を追加するために新しいCounter
を追加していないことになっているEFは、エンティティ
DivisionService divService = new DivisionService();
Division div = divService.FindById(10);
Counter c = new Counter(div);
unitOfWork.CounterRepository.Add(c);
unitOfWork.SaveChanges();
このコードを持っているが、何が起こるかは、それが追加されますということですが再挿入されますどちらも。どのようなアイデアが問題になるのでしょうか?以下は、EDIT
はここでクラスCounter
public class Counter : BaseCounter
{
Division division;
private Counter()
{
}
public Counter(Division division)
{
this.division = division;
}
public Division Division
{
get
{
return division;
}
private set
{
division = value;
}
}
public override string GetNumber()
{
return number.ToString();
}
}
でもCounterRepository
とCounterService
ラップ
public abstract class BaseCounterRepository<T> where T : BaseCounter
{
protected MyContext context;
public BaseCounterRepository()
{
this.context = new MyContext();
}
public BaseCounterRepository(MyContext context)
{
this.context = context;
}
public virtual T FindById(int id)
{
T result = default(T);
try
{
result = (T)context.Set<T>().Find(id);
}
catch (Exception ex)
{
// handle execption
}
return result;
}
public virtual T Add(T obj)
{
try
{
T result = context.Set<T>().Add(obj);
return result;
}
catch (Exception ex)
{
// handle execption
}
}
public virtual void DeleteById(int id)
{
try
{
T entity = context.Set<T>().Find(id);
context.Set<T>().Remove(entity);
}
catch (Exception ex)
{
// handle execption
}
}
}
「カウンター」のコンストラクターを教えてください。 –
ここには... – Sisyphus
部門を保存したくない場合は、カウンタモデルに提供しないでください。データアクセスに関連するモデルをビジネスレイヤと別に保つ理由の1つ – Fabio