我想在我的数据库中添加一本新书,但它不起作用。
class Program
{
static void Main(string[] args)
{
Knigi_DataEntities entities = new Knigi_DataEntities();
Books newBook = new Books();
newBook.Name = "C# 4 How-to";
newBook.Published = 2010;
newBook.Book_ID = 4;
entities.AddToBooks(newBook);
entities.SaveChanges();
Knigi_DataEntities ent = new Knigi_DataEntities();
foreach (var book in ent.Books)
{
Console.WriteLine("{0}, {1} {2} ",
book.Book_ID, book.Name, book.Published);
}
}
}
但是当我关闭//entities.SaveChanges();
时,控制台会显示已存在于我的数据库中的对象。因此问题是由entities.SaveChanges();
引起的
请告诉我,如何添加新物品?
答案 0 :(得分:2)
你可以试试这个
entities.Books.AddObject(newBook);
entities.SaveChanges();
答案 1 :(得分:0)
您确定Id不是主键,因此它想要自动生成一个而您不必输入它吗?
答案 2 :(得分:0)
这里的一个问题可能是您的数据库类型为int的主键未在数据库中设置为AutoIncrement。创建新Books
时可能出现的问题是int的默认值为0
,并且此ID已存在于您的数据库中。
解决方案是在数据库中将其设置为AutoIncrement或检查最高ID,添加1,将其分配给Books对象并插入。
在这种情况下,我会使用AutoIncrement,因为它是最简单的,您不必考虑并发性。