何が欲しいのか説明しようと思いますが、大変です。)だから私はエンティティを持っています:
public class User
{
[Key]
public Int32 Id { get; set; }
public String Name { get; set; }
public List<Article> Article { get; set; }
public String Surname { get; set; }
}
私はその認識DbContext
とそのインターフェースを持っています:
public interface IMyContext
{
DbSet<T> Set<T>() where T : class;
}
public class MyContext : DbContext, IMyContext
{
public DbSet<User> Users { get; set; }
protected override void Dispose(bool disposing)
{
this.SaveChanges();
base.Dispose(disposing);
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.Entity<User>().HasMany(e => e.Article).WithRequired(e => e.User).WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}
}
私はこのエンティティリポジトリとそのインターフェイスを持っています:
public interface IUserRepository
{
void Add(User entity);
void Delete(User entity);
User GetById(Int32 id);
List<User> GetAll();
}
public class UserRepository : RepositoryBase<User>, IUserRepository
{
[Inject]
public UserRepository(IMyContext context):base(context)
{
}
}
また、依存性を注入するためにninjectを使用しています。使用法では、次のようになります(プレッシャーレイヤーのリポジトリを直接使用するのではなく、レイヤー全体で使用する必要があると言わないでくださいBussinesLogic
。これは単なる例です):
var repository = DI.Resolve<IUserRepository>();
repository.Add(new User(){Name="Vasja1", Id = 1, Surname = "Petrov"});
プレゼンテーションレイヤーにAsp.NETアプリケーションがあると想像してみましょう。私のアプリケーションがエンティティを変更できる場所はたくさんあります。どこで使うべきか質問SaveChanges()
?メソッドに入れましたcontext.Dispose()
が、disposeも呼び出す必要があります。答えのためのThx。例を示していただければ幸いです。