好的,这真的很奇怪。我用一个表Customer创建了一个简单的数据库,它有一个列Name。从数据库我自动生成了一个ADO.NET实体数据模型,我正试图像这样添加一个新客户:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Program
{
static void Main()
{
Database1Entities db = new Database1Entities();
Customer c = new Customer();
c.Name = "Harry";
db.AddToCustomer(c);
db.SaveChanges();
}
}
}
但它不会将客户“Harry”留在数据库中!我一直在摸不着头脑,现在想知道为什么这么简单的操作不起作用。究竟是什么问题!?
答案 0 :(得分:1)
EF要求您拥有许多操作的唯一索引。
尝试在表格中添加标识字段(主键)。删除并重新创建模型,然后重试。
编辑:
看起来你是从控制台应用程序运行它。
EDIT2:
接下来要尝试的事情:
答案 1 :(得分:0)
将db
放在using
语句中,以确保在进程退出之前干净地关闭连接/事务。
答案 2 :(得分:0)
好的,这是一个远景。您确定您的连接字符串是否指向正确的位置?连接正在发挥作用?
您可以使用SQL Server Management Studio将一些记录添加到测试数据库中进行验证,然后执行类似
的操作foreach (Customer c in db.Customers)
{
Console.WriteLine(c.Name);
}
答案 3 :(得分:0)
确保数据库文件的“复制到输出目录”属性未设置为“始终复制”。如果是,每次重建应用程序时,数据库都可能被原始副本破坏。