"Sequence contains no elements" Entity Framework 中的错误
"Sequence contains no elements" error in Entity Framework
当我尝试从本地数据库检索对象时,它抛出异常
Sequence contains no elements
但是我已经将示例数据添加到数据库中。什么会导致此错误?
private void BindObjectToControls()
{
Item = new Item();
//set values entered by user into UI to corresponding properties of the object
try
{
Item.Description = cbxType.Text.ToString() + ", " + tbxDesc.Text;
Item.Category = (string)cbxCategory.SelectedItem;
Item.Brand = (string)cbxBrand.SelectedItem;
Item.Price = (int)nudPrice.Value;
}
catch(NullReferenceException ex)
{
MessageBox.Show("Error" + ex);
}
}
private void Save()
{
BindObjectToControls();
ComputerUZEntities db = new ComputerUZEntities();
if (isNew)
{
db.Items.Add(Item);
}
else
{
Item myItem = (from ctx in db.Items where ctx.ItemID == Item.ItemID select ctx).Single();
//Item is global variable.
myItem.Description = Item.Description;
myItem.Category = Item.Category;
myItem.Brand = Item.Brand;
myItem.Price = Item.Price;
}
db.Items.SqlQuery(sql);
db.SaveChanges();
MessageBox.Show("Saved!");
this.Close();
}
P.S 我已经尝试了所有 4 个调用 Single
、SingleOrDefault
、First
、FirstOrDefault
。 None 个有效。
问题不在于这 4 个调用。问题是每次调用 BindObjectToControls()
方法时您都在创建新对象。不要在 BindObjectToControls()
内部创建 new Item()
,而是尝试在内部构造函数或其他地方创建
当我尝试从本地数据库检索对象时,它抛出异常
Sequence contains no elements
但是我已经将示例数据添加到数据库中。什么会导致此错误?
private void BindObjectToControls()
{
Item = new Item();
//set values entered by user into UI to corresponding properties of the object
try
{
Item.Description = cbxType.Text.ToString() + ", " + tbxDesc.Text;
Item.Category = (string)cbxCategory.SelectedItem;
Item.Brand = (string)cbxBrand.SelectedItem;
Item.Price = (int)nudPrice.Value;
}
catch(NullReferenceException ex)
{
MessageBox.Show("Error" + ex);
}
}
private void Save()
{
BindObjectToControls();
ComputerUZEntities db = new ComputerUZEntities();
if (isNew)
{
db.Items.Add(Item);
}
else
{
Item myItem = (from ctx in db.Items where ctx.ItemID == Item.ItemID select ctx).Single();
//Item is global variable.
myItem.Description = Item.Description;
myItem.Category = Item.Category;
myItem.Brand = Item.Brand;
myItem.Price = Item.Price;
}
db.Items.SqlQuery(sql);
db.SaveChanges();
MessageBox.Show("Saved!");
this.Close();
}
P.S 我已经尝试了所有 4 个调用 Single
、SingleOrDefault
、First
、FirstOrDefault
。 None 个有效。
问题不在于这 4 个调用。问题是每次调用 BindObjectToControls()
方法时您都在创建新对象。不要在 BindObjectToControls()
内部创建 new Item()
,而是尝试在内部构造函数或其他地方创建