C# 无法使用实体框架(edmx)写入数据库
正如标题所说,我在写入本地数据库时遇到问题。我由此生成了一个edmx模型,我可以很容易地从中读取C# 无法使用实体框架(edmx)写入数据库,c#,entity-framework,edmx,C#,Entity Framework,Edmx,正如标题所说,我在写入本地数据库时遇到问题。我由此生成了一个edmx模型,我可以很容易地从中读取 EDMXNS.TOWDataBasev1Entities db = new EDMXNS.TOWDataBasev1Entities(); var query = from p in db.Accounts select p; foreach (EDMXNS.Accounts s in query) Console.WriteLine(s.AccountName); 那很好。但是,当我
EDMXNS.TOWDataBasev1Entities db = new EDMXNS.TOWDataBasev1Entities();
var query = from p in db.Accounts select p;
foreach (EDMXNS.Accounts s in query)
Console.WriteLine(s.AccountName);
那很好。但是,当我尝试写入数据库时,什么也没有发生。我没有收到任何错误、异常等。我认为,因为我可以从数据库中读取数据,所以这不是连接问题
这是我写的代码
EDMXNS.TOWDataBasev1Entities db = new EDMXNS.TOWDataBasev1Entities();
EDMXNS.Accounts acc = new EDMXNS.Accounts();
acc.AccountID = 1;
acc.AccountName = "testuser";
acc.AccountPW = "testpw";
acc.PersonDataID = 0;
db.AddToAccounts(acc);
db.SaveChanges();
值得一提的是,my Accounts.AccountID具有identity/autoincrement,但我已尝试将其设置为下一个已知值,或者根本不设置它
有人知道是什么导致了这个问题吗
编辑:我还尝试删除自定义名称空间,删除数据库的所有记录并重新导入所有记录
删除自定义工具名称空间会导致以下错误:
“TOWServer.Accounts.AccountName”和“TOWServer.Accounts.AccountName”之间存在歧义
这没告诉我什么
现在重新导入所有内容会给我一个例外:
“无法加载指定的元数据资源”我在使用EF添加记录时始终使用此格式,请尝试以下格式:
using (MovieStoreEntities context = new MoveStoreEntities())
{
try
{
context.Movies.AddObject(new Movie() { MovieID = 234,
Title = "Sleepless Nights in Seattle", Quantity = 10 });
context.SaveChanges();
}
catch(Exception ex)
{
Console.WriteLine(ex.InnerException.Message);
}
}
我对这个有点陌生。我认为这是最新的,但是我怎么看呢?我也尝试了
db.Accounts.AddObject(acc)代码>但这也不起作用。它会引发任何异常吗?如果将其放入try catch
块中,则弹出错误MessageBox.Show(例如ToString())
Nope,不会引发异常。它确实声明.AddToAccounts已被弃用,并且我应该使用关联对象集的Add方法,但我不知道如何做到这一点代码>?那也不行。您认为这可能与我使用自定义工具集命名空间有关吗?埃德蒙斯。如果我不使用它,我就有名字冲突