Na początku powinienem wspomnieć, że problem ten występuje tylko w aplikacjach formularzy Windows i ten sam program w trybie webowym, na przykład z MVC3 działa idealnie.Struktura encji nie zapisuje wpisów danych w bazie danych
Kilka dni temu napisałem bardzo prosty program do tworzenia formularzy w oknach przy użyciu Visual Studio 2010 ultimate z bazą danych SQL Express. Dodałem bazę danych wybierając opcję Dodaj> Nowy element> Baza danych oparta na usługach i model danych jednostki oparty na tej bazie danych w ten sam sposób. Użyłem struktury Entity do dodawania nowych rekordów do tabel. Zrobiłem coś takiego z VS 2008 SP1, zanim nie miałem problemu, więc zrobiłem to samo. Program został skompilowany i uruchomiony bez błędów i wprowadziłem kilka nowych danych. po wyjściu z programu wróciłem do bazy danych i nic się nie stało. Żadna z informacji, które wprowadziłem, nie została zapisana. I debugowania programu krok po kroku i wszystko było w porządku. Poniższy kod dotyczy bardzo prostego programu z wymienionym problemem. Baza danych zawiera jedną tabelę (książka):
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();
}
}
}
Będę bardzo wdzięczny, jeśli ktoś może mi pomóc. Z góry dziękuję.
.................
Po edycji:
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();
}
}
}
spróbować zastąpić patrz „nowych db.Books();” z "db.Books.CreateObject();" –
Upewnij się, że sprawdzasz poprawną bazę danych. –
@Davide: Użyłem CreateObject tak jak powiedziałeś, ale problem nadal istnieje. – Monoloox