var newEmission = _emissionBindingSource.Current as Emission;
if (newEmission == null) return;
newEmission.SharesNumber = _context.GetNewSharesNumber();
public int GetNewSharesNumber()
{
return Shares.Max(s => s.Number)+1;
}`
但是Max s.Number没有改变,直到我没有保存以前插入的对象。那么,在这种情况下,我必须分开保存每个对象?
更新1 假设我创造了新的物体发射。我将Shares.Max(s => s.Number)+1带到新对象的SharesNumber字段。现在我想创建第二个发射对象,此对象的SharesNumber必须大于1然后是前一个对象。只有保存了第一个创建的对象,我才能做到这一点。
答案 0 :(得分:1)
var newEmission = _emissionBindingSource.Current as Emission;
if (newEmission == null) return;
newEmission.SharesNumber = _context.GetNewSharesNumber();
public int GetNewSharesNumber()
{
// this will always query DB for max value
return Shares.CreateSourceQuery().Max(s => s.Number)+1;
}
但我相信您应该使用某种存储过程来分配新号码或使用自动增量列,因为如果您有多个用户使用多个应用程序,则可能存在重复数字的情况。