0
我无法弄清楚为什么我的数据库没有更新。它不断显示旧数据,如“user1”= mike,但“user2”=未知,而不是Tim。我所要做的就是将数据植入数据库,无需多余。为什么我的数据库没有在实体框架中更新?只是想要种子数据通过
感谢
namespace DatabaseDesign.DAL
{
public class PrivateMessageInitializer : System.Data.Entity.DropCreateDatabaseAlways<PrivateMessageContext> //DropCreateDatabaseIfModelChanges<PrivateMessageContext>
{
protected override void Seed(PrivateMessageContext context)
{
var PrivateMessageHistory = new PrivateMessageHeader();
var msgItems = new PrivateMessageDetail { FromUser="mike", MessageDate = DateTime.Now, Message="message 1", PrivateMessageDetailId = 1, PrivateMessageHeaderId = 1 };
var msgItems2 = new PrivateMessageDetail { FromUser="mike", MessageDate = DateTime.Now, Message="message 2", PrivateMessageDetailId = 2, PrivateMessageHeaderId = 1 };
var msgItems3 = new PrivateMessageDetail { FromUser="mike", MessageDate = DateTime.Now, Message="message 3", PrivateMessageDetailId = 3, PrivateMessageHeaderId = 1 };
var msgItems4 = new PrivateMessageDetail { FromUser="mike", MessageDate = DateTime.Now, Message="message 4", PrivateMessageDetailId = 4, PrivateMessageHeaderId = 1 };
var msgItems5 = new PrivateMessageDetail { FromUser = "mike", MessageDate = DateTime.Now, Message = "message 5", PrivateMessageDetailId = 5, PrivateMessageHeaderId = 1 };
PrivateMessageHistory.Messages.Add(msgItems);
PrivateMessageHistory.Messages.Add(msgItems2);
PrivateMessageHistory.Messages.Add(msgItems3);
PrivateMessageHistory.Messages.Add(msgItems4);
PrivateMessageHistory.Messages.Add(msgItems5);
context.PrivateMessageHeader.Add(PrivateMessageHistory);
context.SaveChanges();
}
}
}
public class PrivateMessageContext : DbContext
{
public PrivateMessageContext()
: base("PrivateMessageContext")
{
}
public DbSet<PrivateMessageHeader> PrivateMessageHeader { get; set; }
public DbSet<PrivateMessageDetail> PrivateMessageDetail { get; set; }
}
namespace DatabaseDesign.Models
{
public class PrivateMessageHeader
{
public int PrivateMessageHeaderId { get; set; }
public PrivateMessageHeader() { this.Messages = new List<PrivateMessageDetail>(); }
public DateTime TimeStamp { get; set; } // Date of the start of thread
public string User1 { get; set; }
public string User2 { get; set; } // this could be made to a list to allow multiples
public int numberOfMessages { get; set; }
public virtual ICollection<PrivateMessageDetail> Messages { get; set; }
}
}
namespace DatabaseDesign.Models
{
public class PrivateMessageDetail
{
public int PrivateMessageDetailId { get; set; }
public DateTime MessageDate { get; set; }
public string FromUser { get; set; } // Don't need ToUser, it's already in header
public string Message { get; set; }
public int PrivateMessageHeaderId { get; set; }
public virtual PrivateMessageHeader PrivateMessageHeader { get; set; }
}
}
namespace DatabaseDesign.DAL
{
public class PrivateMessageContext : DbContext
{
public PrivateMessageContext()
: base("PrivateMessageContext")
{
}
public DbSet<PrivateMessageHeader> PrivateMessageHeader { get; set; }
public DbSet<PrivateMessageDetail> PrivateMessageDetail { get; set; }
}
}
的web.config:
<connectionStrings>
<add name="PrivateMessageContext" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=PrivateMessageContext1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>
和
<entityFramework>
<contexts>
<context type="DatabaseDesign.DAL.PrivateMessageContext, DatabaseDesign">
<databaseInitializer type="DatabaseDesign.DAL.PrivateMessageInitializer, DatabaseDesign" />
</context>
</contexts>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
它无关,与你的EF设置;更重要的是要显示的是你正在运行的实际代码导致了这个问题......这些问题要么是EF上下文有缓存的对象,而是需要使用Refresh()方法刷新,或者对象isn没有正确更新,因为SaveChanges()没有被调用,或者类似的东西。 –
你基本上拥有它。我实际上并没有调用控制器来做任何数据库更改:D *白痴*啊,进入我的下一个问题... – user2330270
注*我叫我自己一个白痴! :) – user2330270