汎用リポジトリパターンを使用するときに最近追加されたエンティティのIDを取得する方法を理解しようとしています。良い例があります。 ここにあなたのコードをステップ実行した場合、実行中に、あなたはID
(あなたはそれが呼び出され何でも)プロパティが読み込まれます表示されますここに汎用リポジトリパターン使用時にエンティティのIDを取得する方法c#
-1
A
答えて
0
存在doen'stリポジトリ、
public class Repository<T> : IRepository<T> where T : class {
protected DbContext DbContext { get; set; }
protected DbSet<T> DbSet { get; set; }
public Repository(DbContext dbContext)
{
if (dbContext == null)
throw new ArgumentNullException("dbContext");
DbContext = dbContext;
DbSet = DbContext.Set<T>();
}
public virtual void Add(T entity)
{
DbEntityEntry dbEntityEntry = DbContext.Entry(entity);
if (dbEntityEntry.State == EntityState.Detached)
{
DbSet.Attach(entity);
dbEntityEntry.State = EntityState.Added;
}
else
{
DbSet.Add(entity);
}
}
}
entity.Idです追加後
あなたの問題は、エンティティフレームワークではなく、汎用リポジトリを持つことです。あなたはちょうど追加したint ID
を(再び仮定して)返す方法が必要です。
インターフェースを作成します。
public interface IEntity
{
public int ID { get; set; }
}
をし、すべてのモデルがそれを継承しています。そして、あなたが保存した後entity.ID
を返すことができ
public class Repository<T> : IRepository<T> where T : IEnitity
:次に、あなたへの型制約を変更します。
+0
このパスをインターフェイスで開始しましたが、ステップ実行後にdbcreatorがプライマリキーとしてIDを使用していないことがわかりました。コミット後、他のフィールドに正しいプライマリキーが設定されました。 –
関連する問題
- 1. 汎用リポジトリパターンでApplicationUserを使用
- 2. C#DTOエンティティのIDを取得する
- 3. クラスの型を取得して汎用関数で使用する方法は?
- 4. インサート時に一意のIDを取得して使用する
- 5. mybatisを使用してバッチ挿入するときに各エンティティのIDを取得する方法
- 6. エンティティを取得する方法関連するオブジェクトIDによって、springデータneo4jを使用する場合?
- 7. javascript inbuilt関数の汎用リファレンスを取得する方法
- 8. Mooseの使用時にメソッドリファレンスを取得する方法
- 9. CouchDB:_revs_diffを使用してドキュメントリビジョンIDを取得する方法
- 10. SQL:EXCEPT使用時にCOUNTを取得する方法
- 11. CGI使用時にperlでHTTPヘッダを取得する方法
- 12. エンティティフレームワークを使用してデータを取得する汎用関数
- 13. ThenIcludeを使用してリポジトリパターンを熱心に読み込むエンティティ
- 14. .Net用のNancy Razorセットアップを使用してセッションIDを取得する方法?
- 15. EF4で汎用エンティティ名をコンストラクタに書き込む方法は?
- 16. createQueryで一意のキーIDを使用してデータストアからエンティティを取得する方法
- 17. テスト時に汎用リポジトリがコンテキストにエンティティを追加しない
- 18. GTMの使用:dataLayerの「id」というキーから両方の値を同時に取得する方法は?
- 19. 汎用C#TypeConverterの実装方法は?
- 20. 汎用リレーションを持つ多相JPAエンティティの実装方法
- 21. 条件付きのC#MVCを使用して入れ子になったエンティティを取得する方法は?
- 22. WPFコントロールから継承し、C#で汎用クラスを同時に使用する方法は?
- 23. ボタンIDを取得するためにgetResources()。getIdentifierを使用する方法?
- 24. asp.netのエンティティを使用してmssqlから新しいレコードのIDを取得するC#
- 25. 汎用リポジトリパターンで接続を管理する
- 26. リポジトリパターンを使用しているときに単一オブジェクトを取得する方法は?
- 27. IDオートメーションを使用せずに確実にウィンドウを取得する方法
- 28. 実行時に汎用イベントハンドラを追加する方法
- 29. 使用する方法のidによって選びだしアイテムを取得
- 30. 反射を使って汎用IDictionaryの値を取得する
エンティティを追加すると、その 'Id'プロパティが設定されます。いくつかのコードを提供する必要があります。 – Jonesopolis
Generic Repositoryクラスを含む –