のIDを取得:ASP.NET MVC、与えられたリポジトリインターフェイスでは、最新の追加アイテム
public interface IRepository<T> where T : class
{
void Add(T entity);
void Save();
}
との、具体的なリポジトリとしましょう:
public ConcreteRepository : IRepository<Something>
{
void Add(Something entity)
{
_context.Somethings.Add(entity);
}
void Save()
{
_context.SaveChanges();
}
}
を、私は、最新のアイテムのId
を取得する必要がありますデータベースに挿入されます。私はそれが必要です。なぜならユーザーがフォームを投稿した後に私のアプリで新しく作成したアイテムにリダイレクトしたいからです。
私が最初に考えたのは、単にAdd(T entity)
方法からentity.Id
を返すことでしたが、私は唯一の別の方法で行わSaveChanges()
後Id
を得ることができますので、私は、それは不可能です実現しました。
私は、実際の生活の例では、リポジトリは、たとえばEdit()
のために、より多くのメソッドが含まれており、他のではないながら、私の方法のいくつかは、自分でSave()
を呼び出しますので、これは私のAdd()
方法でSaveChanges()
を呼び出すためにも意味がありませんと思いますか?私にはいいアイデアのようには聞こえません。
私が必要とするものを達成するためのエレガントな方法は何でしょうか?