我是asp mvc的新手。我有一个问题,我两天都无法解决...... 我的数据库中有四个计算列。我想向数据库插入新行,当然只有未计算的变量。 但我收到错误,我无法更新计算列,但我不想! 我试图使用AutoMapper,但也许我使用它错了。 如何向数据库添加新行?请帮帮我。
我的模特:
namespace Aplikacja_v0.Models
public class OtwarteContext : DbContext
{
public OtwarteContext()
: base("DefaultConnection")
{
}
public DbSet<Otwarte> Otwarte { get; set; }
}
[Table("OtwartePozycje")]
public partial class Otwarte
{
[Key]
public int OtwartaPozycjaID { get; set; }
public int UserID { get; set; }
public string Nazwa { get; set; }
public int Ilosc { get; set; }
public decimal KursNabycia { get; set; }
public int Stan { get; set; }
public decimal KursAktualny { get; set; }
public decimal KursZamkniecia { get; set; }
public decimal WartoscPortfela { get; set; }
//Computed columns
public decimal WartoscNabycia { get; private set; }
public decimal WartoscAktualna { get; private set; }
public decimal ZmianaProcentowa { get; private set; }
public decimal ZmianaKwotowa { get; private set; }
}
我的控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Otwarte otwarte)
{
if (ModelState.IsValid)
{
var userIDD = WebSecurity.GetUserId(User.Identity.Name);
OtwarteViewModel dbcontext = new OtwarteViewModel();
dbcontext.Nazwa = otwarte.Nazwa;
dbcontext.Ilosc = otwarte.Ilosc;
dbcontext.KursAktualny = otwarte.KursAktualny;
dbcontext.KursNabycia = otwarte.KursNabycia;
dbcontext.Stan = 1;
dbcontext.UserID = WebSecurity.GetUserId(User.Identity.Name);
dbcontext.WartoscPortfela = 0;
dbcontext.KursZamkniecia = 0;
Mapper.CreateMap<OtwarteViewModel, Otwarte>();
var mapped = Mapper.Map<OtwarteViewModel, Otwarte>(dbcontext);
db.Otwarte.Add(mapped);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(otwarte);
}
答案 0 :(得分:2)
您必须使用此属性
装饰您的列[DatabaseGenerated(DatabaseGeneratedOption.Computed)]