- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
模型这些是模型类,我正在使用 Entity Framework 。我正在使用这些模型来实现级联下拉列表。
public class League
{
public int Id { get; set; }
public string League1 { get; set; }
public string Icon { get; set; }
public virtual ICollection<LeagueDivision> LeagueDivisions { get; set; }
}
public class LeagueDivision
{
public int Id { get; set; }
public Nullable<int> LeagueId { get; set; }
public string Name { get; set; }
public string Icon { get; set; }
public virtual League League { get; set; }
}
public partial class CalculatorPrice
{
public int Id { get; set; }
public int LeagueId { get; set; }
public int LeagueDivisionId { get; set; }
public Nullable<decimal> Price { get; set; }
}
public class ViewModelForHostBooster
{
[Required(ErrorMessage = "Please enter price")]
[Display(Name = "Price")]
public decimal Price { get; set; }
[Required(ErrorMessage = "Please select a league")]
[Display(Name = "League")]
public int? SelectedLeague { get; set; }
[Required(ErrorMessage = "Please select a league division")]
[Display(Name = "League Division")]
public int? SelectedLeagueDivision { get; set; }
public SelectList LeagueList { get; set; }
public SelectList LeagueDivisionList { get; set; }
}
Controller / Action 在 HttpGet 中,我刚刚填充了级联下拉列表并且工作正常,现在我正在为此实现 Httppost。我想根据从下拉列表中选择的列表项存储 price,如果 price 已经存在,那么我想更新它。第一次我可以成功添加 price 但是第二次当我尝试更新它时我得到 System.Data.Entity.Infrastructure.DbUpdateConcurrencyException 请任何人指导我如何处理这个。
[HttpPost]
public ActionResult IndexDropDown(ViewModelForHostBooster model)
{
if (!ModelState.IsValid)
{
ConfigureViewModel(model);
return View(model);
}
else
{
HostBoostersDBEntities2 db = new HostBoostersDBEntities2();
CalculatorPrice calculatePrice = new CalculatorPrice();
var calculatePriceExistsOrNot = db.CalculatorPrices
.Where(x => x.LeagueId == model.SelectedLeague
&&
x.LeagueDivisionId == model.SelectedLeagueDivision).ToList();
if (calculatePriceExistsOrNot.Count > 0)
{
calculatePrice.LeagueId = (int)model.SelectedLeague;
calculatePrice.LeagueDivisionId = (int)model.SelectedLeagueDivision;
calculatePrice.Price = model.Price;
db.Entry(calculatePrice).State = EntityState.Modified;
Exception occurs here in line db.SaveChanges(); 'System.Data.Entity.Infrastructure.DbUpdateConcurrencyException' occurred in EntityFramework.dll but was not handled in user code. Additional information: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
db.SaveChanges();
}
else
{
calculatePrice.LeagueId = (int)model.SelectedLeague;
calculatePrice.LeagueDivisionId = (int)model.SelectedLeagueDivision;
calculatePrice.Price = model.Price;
db.CalculatorPrices.Add(calculatePrice);
db.SaveChanges();
}
}
ConfigureViewModel(model);
return View(model);
}
查看
@using (Html.BeginForm("IndexDropDown", "DropDown", FormMethod.Post,
new { enctype = "multipart/form-data" }))
{
<div>
@Html.LabelFor(m => m.Price, new { @class ="control-lebel"})
@Html.TextBoxFor(m => m.Price, new { @class = "form-control"})
@Html.ValidationMessageFor(m => m.Price)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeague ,new { @class ="control-lebel"})
@Html.DropDownListFor(m => m.SelectedLeague, Model.LeagueList, new { @class = "form-control"})
@Html.ValidationMessageFor(m => m.SelectedLeague)
</div>
<div>
@Html.LabelFor(m => m.SelectedLeagueDivision ,new { @class ="control-lebel"})
@Html.DropDownListFor(m => m.SelectedLeagueDivision, Model.LeagueDivisionList, new { @class = "form-control" })
@Html.ValidationMessageFor(m => m.SelectedLeagueDivision)
</div>
<input type="submit" value="save" />
}
最佳答案
[HttpPost]
public ActionResult IndexDropDown(ViewModelForHostBooster model)
{
if (!ModelState.IsValid)
{
ConfigureViewModel(model);
return View(model);
}
else
{
HostBoostersDBEntities2 db = new HostBoostersDBEntities2();
CalculatorPrice calculatePrice = db.CalculatorPrices
.Where(x => x.LeagueId == model.SelectedLeague
&&
x.LeagueDivisionId == model.SelectedLeagueDivision).FirstOrDefault();
if (calculatePrice != null)
{
calculatePrice.LeagueId = (int)model.SelectedLeague;
calculatePrice.LeagueDivisionId = (int)model.SelectedLeagueDivision;
calculatePrice.Price = model.Price;
//db.Entry(calculatePrice).State = EntityState.Modified;
db.SaveChanges();
}
else
{
calculatePrice = new CalculatorPrice();
calculatePrice.LeagueId = (int)model.SelectedLeague;
calculatePrice.LeagueDivisionId = (int)model.SelectedLeagueDivision;
calculatePrice.Price = model.Price;
db.CalculatorPrices.Add(calculatePrice);
db.SaveChanges();
}
}
ConfigureViewModel(model);
return View(model);
}
关于c# - System.Data.Entity.Infrastructure.DbUpdateConcurrencyException。存储更新、插入或删除语句影响了意外的行数 (0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38180372/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 社区上个月审查了是否重新打开此
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我与我们的开发团队进行了讨论,以在应用程序服务器上安装本地MTA,或者是否应该使用内部网络上的MTA服务器发送电子邮件。两种解决方案都各有利弊。 优点:发送电子邮件的程序可以将其传递到本地MTA,而不
文档说( Terminating an Instance ),已终止的实例暂时保留在状态为已终止的实例列表中。 从控制台中删除终止的实例是否有任何特定的时间限制? 最佳答案 终止 API 调用成功后停
我从一个全局变量的地址得到了一个 *TypeB 类型的常量指针,我需要将它转换为一个 *TypeA 类型的指针,其中 TypeB 不同于 TypeA 但也是有效的 TypeA。 例如 TypeA 可能
我无法可靠地允许启用了istio的Google Kubernetes Engine集群通过extensible service proxy连接到Google Cloud Endpoints(服务管理A
我对云没有经验。我在 Oracle Cloud 中创建了一个计算实例。但是,当我尝试使用公共(public) i/p 通过 ssh 访问它时,它显示“无法连接到主机端口 22:操作超时”。我已经为实例
我正在使用 FuentMigrator 和 FluentMigrator.Runner 3.1.3 我的迁移工作正常并针对数据库执行。但是当我尝试执行嵌入式资源 sql 时,我收到以下错误消息: 无法
我试图将我的网站上传到服务器。它在我的本地主机上运行良好,所以我将本地主机 wwwroot 文件夹中的所有内容上传到服务器并更改了连接字符串。 但是有这个错误: Exception informati
当我尝试访问我的应用时,我收到以下错误。 AppRegistryNotReady: The translation infrastructure cannot be initialized befor
您好,我已经使用下单方法在软层上订购了 block 存储设备。我想知道订购设备的名称和 ID。怎么会知道呢。下订单方法不返回 id 或名称作为响应。我需要 id 才能在 softlayer 上调用一些
引导卷是指包含操作系统文件的磁盘卷吗?引导卷和块卷的定义是什么? 最佳答案 是的,通常启动卷用作计算实例的操作系统磁盘,块卷用作数据存储,但启动卷也是一种块卷。 一些差异: 启动实例不需要块卷,但需要
我在 Macbook Pro 上创建了一个网络(位于 WiFi 列表下方),并且有 2 个 iOS 7(iPad 2 和 iPod Touch)设备加入到该网络。当我开始浏览设备时,我只是在 nati
全部,我正在编写一个 Powershell cmdlet。让我的本地机器上的 cmdlet 一切正常。查看访问远程计算机所需的内容,似乎我需要在我的项目中引用 Microsoft.Management
我正在沉浸在 DDD 中,并且有一个关于什么属于该域以及什么是基础设施问题的问题。 描述域的简化示例: 应用程序中的上下文之一是关于允许用户检查网页以获取某些信息的便利功能。即.. “用户想要检查网页
本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperPaths类的一些代码示例,展示了ZookeeperPaths类的
本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperTopicRepository类的一些代码示例,展示了Zookee
本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperSubscriptionRepository类的一些代码示例,展示
本文整理了Java中pl.allegro.tech.hermes.infrastructure.zookeeper.ZookeeperGroupRepository类的一些代码示例,展示了Zookee
伙计们,我对添加对 Microsoft.Web.Infrastructure.dll 的引用感到非常痛苦,也许有人可以帮我解决这个问题。 我正在尝试添加对 Microsoft.Web.Infrastr
我是一名优秀的程序员,十分优秀!