Ich benutze VS 2015 und ich erstellt ein ASP.NET MVC-Projekt und fügte ein paar Dinge hinzu (Anmeldung und Registrierung funktionierte gut mit Localdb MyDatabase.mdf
), die funktioniert haben.ASP.NET MVC CRUD mit LocalDb savechanges Fehler
CRUD nur erstellen Funktion in db der Rest wird später kommen.
Aber jetzt kann ich diese Arbeit nicht bekommen. Im Inneren des LocalDB MyDatabase.mdf
genannt, ich habe eine andere Tabelle Amsterdam
genannt erstellt:
[MyDatabase.mdf] [1]
Und das ist mein MainDbContext.cs
- hier habe ich
public DbSet<Amsterdam> Amsterdam { get; set; }
Und in meinem Home
Ordner schrieb ich Amsterdam.cshtml
wie folgt aus:
@model IEnumerable<MyFirstWebsite.Models.Amsterdam>
@{
ViewBag.Title = "Amsterdam";
var username = User.Identity.Name;
}
<h2>@username's Bestellijst Amsterdam</h2>
@using (Html.BeginForm())
{
<span>Enter new item: </span>
<br/>
<input type="text" name="new_item"/>
<br/>
<span>Public post?</span>
<input type="checkbox" name="check_public"/><br/>
<br/>
<input type="submit" value="Add Item"/>
}
<br/>
<table class="table table-bordered table-condensed">
<thead>
<tr>
<th style="text-align: center;">Id Bestelling</th>
<th style="text-align: center;">Details Bestelling</th>
<th style="text-align: center;">Time - Ontvangen Bestelling</th>
<th style="text-align: center;">Time - Verzonden Bestelling</th>
<th style="text-align: center;">Edit</th>
<th style="text-align: center;">Delete</th>
<th style="text-align: center;">Public Post</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;"></td>
<td style="text-align: center;">
<a href="@Url.Action("Edit", "Home")/">Edit</a>
</td>
<td style="text-align: center;">
<a href="@Url.Action("Delete", "Home")/">Edit</a>
</td>
<td style="text-align: center;"></td>
</tr>
</tbody>
</table>
Und in meinem Models
Ordner erstellt ich Amsterdam.cs
, die wie folgt aussieht:
namespace MyFirstWebsite.Models
{
public class Amsterdam
{
[Key]
public int Id { get; set; }
public string Details { get; set; }
public string Date_Posted { get; set; }
public string Time_Posted { get; set; }
public string Date_Edited { get; set; }
public string Time_Edited { get; set; }
public string Public { get; set; }
public int User_Id { get; set; }
}
}
Und in meinem Controllers
Ordner meine HomeController
wie folgt aussieht:
public ActionResult Amsterdam()
{
return View();
}
[HttpPost]
public ActionResult Amsterdam(Amsterdam list)
{
string timeToday = DateTime.Now.ToString("h:mm:ss tt");
string dateToday = DateTime.Now.ToString("M/dd/yyyy");
if (ModelState.IsValid)
{
using (var db = new MainDbContext())
{
Claim sessionEmail = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email);
string userEmail = sessionEmail.Value;
var userIdQuery = db.Users.Where(u => u.Email == userEmail).Select(u => u.Id);
var userId = userIdQuery.ToList();
var dbAmsterdam = db.Amsterdam.Create();
dbAmsterdam.Details = list.Details;
dbAmsterdam.Date_Posted = dateToday;
dbAmsterdam.Time_Posted = timeToday;
dbAmsterdam.User_Id = userId[0];
db.Amsterdam.Add(dbAmsterdam);
db.SaveChanges();
}
}
else
{
ModelState.AddModelError("", "Incorrect format has been placed");
}
return View();
}
Ich weiß, ich habe nahe, weil mein Register funktioniert, aber ich kann nicht bekomme meine CRUD für Amsterdam
zum arbeiten. Wenn ich ok klicken, wie im Screenshot gezeigt (wenn ich auf Ad Artikel klicken):
https://i.stack.imgur.com/XsGws.png
ich einen Fehler
DbUpdateException durch Benutzercode nicht behandelte war
https://i.stack.imgur.com/I6kYP.png
Es sagt auch "Siehe die innere Ausnahme". Hast du ? Was sagt es ? – Shyju
{"Ungültiger Objektname 'dbo.Amsterdams'."} – DjRossoreTV
'db.Amsterdam.Create()'? Was macht das? – Shyju