EntityFramework创建对象

时间:2011-05-31 09:01:00

标签: entity-framework

拉迪斯拉夫,对不起,也许我没有正确提出问题。假设在WinForm应用程序中我正在创建新对象:

        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然后是前一个对象。只有保存了第一个创建的对象,我才能做到这一点。

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;
}

但我相信您应该使用某种存储过程来分配新号码或使用自动增量列,因为如果您有多个用户使用多个应用程序,则可能存在重复数字的情况。