我编写了现在使用EF模型的代码我想将som条目添加到我的表中,如下所示:
protected void cmdOk_Click(object sender, EventArgs eventArgs)
{
Validate();
if (Page.IsValid)
using (var db = new KishModelContainer())
{
EditId = Request["Id"].ChangeType<int>(0);
if (EditId == 0)
{
var obj = new Entities.Db.Salon();
obj.Name = txtName.Text;
obj.Address = txtAddress.Text;
obj.Capacity = Convert.ToInt32(txtCapacity.Text);
obj.ServiceProviderId = txtProviderId.Text.ChangeType<int>(0);
db.Salons.Add(obj);
db.SaveChanges();
var tb = new Entities.Db.Seat();
for (int i = 1; i < Convert.ToUInt32(txtCapacity.Text);i++ )
{
tb.SalonId = obj.Id;
db.Seats.Add(tb);
db.SaveChanges();
}
DBUtils.AddOperationLog((CurrentUser)Session["currentUser"], "", "افزودن خدمت");
Message.Info("successful operaton ");
Response.Redirect("AbstractServices.aspx", false);
但我在FOR循环中遇到异常(line:db.SaveChanges();)。 例外是:
类型&#39; System.Data.Entity.Infrastructure.DbUpdateException&#39;的例外情况发生在EntityFramework.dll中但未在用户代码中处理
其他信息:更新条目时发生错误。有关详细信息,请参阅内部异常。
答案 0 :(得分:0)
我猜你需要放var tb = new Entities.Db.Seat();
循环内部。因为当前您尝试将同一对象添加到db.Seats
,但每次都更改其SalonId属性。那不好