Ich mache eine Auktionsanwendung. Momentan arbeite ich am Bietsystem. Mein Auktions-Modell besteht aus:C# MVC Entity Framework aktualisiert nicht List-Attribut eines Objekts
public class Auctions
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
(...) some more fields like title, description etc(...)
public List<Bid> bids = new List<Bid>(); // a list of bids from the users
}
public class Bid
{
public string bidAuthor { get; set; }
public decimal bid { get; set; }
public DateTime bidDate { get; set; }
}
In der Ansicht, ich habe ein Formular zum Senden eines Angebots:
@model BiddingViewModel
(...)info stuff about the auction(...)
@using (Html.BeginForm("CreateBid", "Auction", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.AntiForgeryToken()
@Html.HiddenFor(model=>model.auctionToSend.ID)
@Html.EditorFor(model => model.bid)
<input type="submit" value="Send a bid" />
}
Dann mein contoller:
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateBid(BiddingViewModel bvm)
{
var user = await _userManager.FindByIdAsync(HttpContext.User.GetUserId());
var tmp = _context.Auctions.FirstOrDefault(i => i.ID == bvm.auctionToSend.ID);
Bid newBid = new Bid()
{
bid = decimal.Parse(bvm.bid.ToString()),
bidAuthor = user.Email,
bidDate = DateTime.Now
};
tmp.bids.Add(newBid);
_context.Entry(tmp).State = Microsoft.Data.Entity.EntityState.Modified;
_context.SaveChanges();
return RedirectToAction("AuctionList", "Auction");
}
Leider doesn diese‘ t scheint meine bids
Spalte in meiner Datenbank (die vom Typ VARBINARY(MAX)
ist) zu aktualisieren. Was mache ich falsch?
Haben u versuchen, Ihren Code zu debuggen? Haben Sie Fehler? – Alexandr
Sie müssen die Entität nicht als 'EntityState.Modified' festlegen, EF erledigt dies für Sie. – DavidG
Kannst du auch dein Schema zeigen? Dieser letzte Satz scheint "Gebote" zu enthalten, ist eine Kolumne, anstatt eine eigene Tabelle zu sein. Was bedeutet, dass Sie einige wirklich merkwürdige Fehler bekommen sollten. – DavidG