无法使用实体框架(edmx)写入数据库

时间:2012-12-26 10:24:57

标签: 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();
EDMXNS.Accounts acc = new EDMXNS.Accounts();

acc.AccountID = 1;
acc.AccountName = "testuser";
acc.AccountPW = "testpw";
acc.PersonDataID = 0;

db.AddToAccounts(acc);
db.SaveChanges();

值得一提的是我的Accounts.AccountID具有身份/自动增量,但我已尝试将其设置为下一个已知值,或根本不设置它。

有人知道可能导致此问题的原因吗?

编辑:我还尝试删除自定义名称空间,删除数据库的所有记录并重新导入。

删除自定义工具名称空间会导致以下错误: 'TOWServer.Accounts.AccountName'和'TOWServer.Accounts.AccountName'之间的歧义

哪个不告诉我什么。

重新导入一切现在给了我一个例外: “无法加载指定的元数据资源”

1 个答案:

答案 0 :(得分:0)

在使用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);  
      } 
    }