Lúc đầu, tôi nên đề cập đến vấn đề này chỉ xảy ra trong các ứng dụng biểu mẫu cửa sổ và chương trình tương tự trong chế độ web chẳng hạn với MVC3 hoạt động hoàn hảo.Khuôn khổ thực thể không lưu mục nhập dữ liệu trong cơ sở dữ liệu
Một số ngày trước, tôi đã viết một chương trình biểu mẫu cửa sổ rất đơn giản bằng cách sử dụng Visual studio 2010 cuối cùng với cơ sở dữ liệu SQL Express. Tôi đã thêm cơ sở dữ liệu bằng cách chọn Thêm> Mục mới> Cơ sở dữ liệu dựa trên dịch vụ và mô hình dữ liệu thực thể dựa trên cơ sở dữ liệu này theo cùng một cách. Tôi đã sử dụng khung Entity để thêm một số bản ghi mới vào các bảng. Tôi đã làm điều đó với VS 2008 SP1 trước khi không có vấn đề vì vậy tôi đã làm như vậy. Chương trình được biên dịch và chạy không có lỗi và tôi đã nhập một số dữ liệu mới. sau khi thoát khỏi chương trình, tôi quay trở lại cơ sở dữ liệu và không có gì xảy ra. Không có thông tin nào tôi đã nhập đã được lưu. Tôi gỡ lỗi chương trình từng bước và mọi thứ đều ổn. Mã bên dưới có liên quan đến một chương trình rất đơn giản có vấn đề được đề cập. Cơ sở dữ liệu có một bảng (sách):
namespace Book
{
public partial class BookForm : Form
{
BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
Book bookToCreate = new Book();
bookToCreate.Id = Guid.NewGuid();
bookToCreate.Title = titleTextBox.Text;
db.Books.AddObject(bookToCreate);
db.SaveChanges();
}
}
}
Tôi sẽ rất biết ơn nếu có ai giúp tôi. Cảm ơn trước.
.................
Sau khi chỉnh sửa:
namespace Book
{
public partial class BookForm : Form
{
//BookDatabaseEntities db = new BookDatabaseEntities();
public BookForm()
{
InitializeComponent();
}
private void saveButton_Click(object sender, EventArgs e)
{
var db = new BookDatabaseEntities();
var bookToCreate = db.Books.CreateObject();
//Book bookToCreate = new Book();
bookToCreate.Id = Guid.NewGuid();
bookToCreate.Title = titleTextBox.Text;
db.AcceptAllChanges();
db.Books.AddObject(bookToCreate);
db.SaveChanges();
}
}
}
cố gắng để thay thế "db.Books mới();" với "db.Books.CreateObject();" –
Đảm bảo rằng bạn đang kiểm tra cơ sở dữ liệu chính xác. –
@Davide: Tôi đã sử dụng CreateObject như bạn đã nói nhưng vấn đề vẫn tồn tại. – Monoloox