C# 实体框架保存不工作
我正在使用实体框架在SQLite数据库文件中保存一些数据 这是我在DB文件中的表C# 实体框架保存不工作,c#,entity-framework,C#,Entity Framework,我正在使用实体框架在SQLite数据库文件中保存一些数据 这是我在DB文件中的表 ID Name Username Pwd ID为自动递增,其余列为Text类型 以下是我将数据保存到数据库中的方式: UserInfo userInfo=new UserInfo(); userInfo.Name="abc"; userInfo.Username="xyz"; userInfo.Pwd="123456"; using (var context = new ApplicationCo
ID Name Username Pwd
ID
为自动递增,其余列为Text
类型
以下是我将数据保存到数据库中的方式:
UserInfo userInfo=new UserInfo();
userInfo.Name="abc";
userInfo.Username="xyz";
userInfo.Pwd="123456";
using (var context = new ApplicationContext())
{
context.UserInfo.Add(userInfo);
context.SaveChanges();
}
问题是,此代码没有向表中插入任何新行。我在存钱之前也试过这个,但是运气不好
context.Entry<UserInfo>(userInfo).State = EntityState.Added;
context.ChangeTracker.DetectChanges();
context.Entry(userInfo.State=EntityState.Added;
context.ChangeTracker.DetectChanges();
我尝试过调试,没有出现异常
如何使用实体框架将新行插入表中?可能导致问题的可能性
请参阅此链接&我曾经遇到过类似的问题,要确定到底是什么原因导致了这一问题,可能会很痛苦。可能导致EF中出现这种行为的一个问题是,上下文对象有多个实例,因此当您在上下文上调用SaveChanges时,实际上是在与添加实体的实例不同的实例上调用它(并且EF未检测到实体中的任何更改,或者新实体未附加到正确的上下文,导致SaveChanges未向数据库发送任何SQL请求)
我建议在VS中调试它(使用对象id特性)为了查看是否有多个上下文实例。使用是更好地控制应用程序中上下文对象的生存期的一种方法连接字符串?您的逻辑很好,我的第一个猜测是您的连接字符串有点古怪!它是否都包装在try/catch块中,并且您可能忽略了错误?Connecti在字符串上,它可以检索现有数据,但不能saving@DavidG是的,它包装在try/catch中。那么,您的catch中是否有任何错误?我找不到AddObject()仍然没有获得InsertonSubmit()。谢谢,我如何使用对象id功能进行调试?如果您有不同的实例,则在VS的监视栏中会有不同的id