私は自分のリポジトリで以下を使用しています:
public virtual T Add(T entity)
{
DbEntityEntry dbEntityEntry = DbContext.Entry(entity);
if (dbEntityEntry.State != EntityState.Detached)
{
dbEntityEntry.State = EntityState.Added;
}
else
{
DbSet.Add(entity);
}
}
私のエンティティはすべて、ID 列である主キーを持っています。エンティティが追加されたら、そのエンティティを返したいので、グリッドに入力して主キーをグリッドに表示できます。
しかし、主キーの詳細を含めて、追加したエンティティを完全に返すにはどうすればよいでしょうか?
参考までに、サービスに追加するために使用するコードは次のとおりです。
try
{
var item = _uow.Tests.Add(Test);
_uow.Commit();
var response = Request.CreateResponse<Test>(HttpStatusCode.Created, item);
string uri = Url.Link("DefaultApi", new { id = item.Id });
response.Headers.Location = new Uri(uri);
return response;
}
catch (DbUpdateException ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
値を返さずにリポジトリを離れ、代わりにサービスにコードを追加したほうがよいでしょうか?