0
A
回答
1
NCommon.Configure.Using(new StructureMapContainerAdapter(ObjectFactory.Container))
.ConfigureState<DefaultStateConfiguration>()
.ConfigureData<EFConfiguration>(config => config.WithObjectContext(
() =>
{
SiteContext db = new SiteContext(ConfigurationManager.ConnectionStrings["TestTheBest"].ConnectionString);
if (Transaction.Current != null)
{
db.Context.Connection.Open();
}
return db.Context;
}))
.ConfigureUnitOfWork<DefaultUnitOfWorkConfiguration>(config => config.AutoCompleteScope());
public class SiteContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<Company> Companies { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Test> Tests { get; set; }
public DbSet<Client> Clients { get; set; }
public DbSet<Question> Questions { get; set; }
public DbSet<Section> Sections { get; set; }
public DbSet<Answer> Answers { get; set; }
public DbSet<GlobalSettings> GlobalSettings { get; set; }
public DbSet<PassageTest> PassageTest { get; set; }
public DbSet<PassageTestAnswer> PassageTestAnswer { get; set; }
public DbSet<SaaSUser> SaaSUser { get; set; }
public SiteContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{
Context.SavingChanges += new EventHandler(Context_SavingChanges);
}
void Context_SavingChanges(object sender, EventArgs e)
{
if(Context.Connection.State==ConnectionState.Open)
Context.Connection.Close();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().HasMany(x => x.Invitations).WithRequired(x=>x.user).WillCascadeOnDelete(true);
modelBuilder.Entity<User>().HasMany(x => x.PassageTests).WithRequired(x => x.user).WillCascadeOnDelete(true);
modelBuilder.Entity<PassageTest>().HasMany(x => x.PassageTestAnswers).WithRequired(x => x.passageTest).WillCascadeOnDelete(true);
// modelBuilder.Entity<Company>().HasMany(x => x.Users).WithRequired(x => x.company).WillCascadeOnDelete(true);
modelBuilder.Entity<Question>().HasMany(x => x.Answers).WithRequired(x => x.question).WillCascadeOnDelete(true);
modelBuilder.Entity<Question>().HasMany(x => x.PassageTestAnswers).WithRequired(x => x.question).WillCascadeOnDelete(true);
modelBuilder.Entity<Test>().HasMany(x => x.Invitations).WithRequired(x => x.test).WillCascadeOnDelete(true);
modelBuilder.Entity<Test>().HasMany(x => x.PassageTests).WithRequired(x => x.test).WillCascadeOnDelete(true);
modelBuilder.Entity<Test>().HasMany(x => x.Sections).WithRequired(x => x.test).WillCascadeOnDelete(true);
modelBuilder.Entity<Client>().HasMany(x => x.Tests).WithRequired(x => x.client).WillCascadeOnDelete(true);
}
public ObjectContext Context
{
get { return ((IObjectContextAdapter)this).ObjectContext; }
}
}
相關問題
- 1. NCommon - 1.1中的更改
- 2. DDD - Enity Framework 4和ncommon
- 3. NCommon - 資源,文檔
- 4. NCommon的替代軟件?
- 5. WebGrid和EF4屬性
- 6. EF4和SQLDependency對象
- 7. WPF,EF4和關係
- 8. Primefaces 1.1和jsf1.2
- 9. What't 'HTTP/1.1 200' 和 'HTTP/1.1 200 OK'
- 10. NCommon +流利的NHibernate +多數據庫?
- 11. EF4和連接字符串
- 12. MVC3,EF4和使用塊
- 13. EF4和EF6的區別
- 14. EF4,TransactionScope和任務<>
- 15. 添加和使用EF4
- 16. CastleWindsor + NHibernate + NCommon IRepository:如何自動註冊?
- 17. 如何使用StruceMap註冊NCommon?
- 18. 如何使用NCommon和EntityFramework執行存儲過程
- 19. 使用Autofac,NCommon和Fluent NHibernate,調用存儲過程
- 20. Orion 1.1和Proton CEP
- 21. WCF和肥皂1.1
- 22. TwitterJS和Twitter 1.1 API
- 23. SslStream,BEAST和TLS 1.1
- 24. asp.net 1.1和Firefox 7
- 25. 與EF4
- 26. 並行訪問EF4實體(並行+ EF4)
- 27. WCF DataContract IsReference =真和.NET 1.1
- 28. EJB 1.1和磁盤IO
- 29. 問題與JSF 1.1和PopUp
- 30. GLKView和OpenGLES 1.1紋理?