将 int 增加 1 的可枚举范围



每次在我的数据库/表中创建新行时,我正在使用Enumerable.Range(1, 1).FirstOrDefault()来尝试增加我的MKCRFQ1。我正在使用 WCF 服务和 WPF 应用程序。

客户

using (MKCServiceClient service = new MKCServiceClient())
{
    await service.GetQuoteAsync(new QuoteData
    {
        ...
        MKCRFQ = Enumerable.Range(1, 1).FirstOrDefault(),
        ...
    });
}

服务

public QuoteResults CalculateResult(Database db, QuoteData data)
{
    var result = new QuoteResults
    {
        Successful = false,
        Data = data
    };
    var quote = new Quote
    {
        ...
        MKCRFQ = data.MKCRFQ,
        ...
    };
    result.Quote = quote;
    result.Successful = true;
    return result;
}
public void GetQuote(QuoteData data)
{
    using (Database db = new Database())
    {
        var result = CalculateResult(db, data);
        db.Quote.Add(result.Quote);
        db.SaveChanges();
    }
}

我的问题是每次我插入一行新数据时,添加的每个新行的MKCRFQ号都是1,我不知道如何在添加每增加一行时增加(+1)。这可能看起来很简单,但我以前从未这样做过,也不知道如何做。有人可以解释或告诉我这是如何完成的吗?

是的,我知道这不是一个好问题...但我自己想通了。它可能不是最好的编码或完整的证明,但它有效,我在这里发布这个,供任何可能需要参考我是如何做到的:)

这是我的服务编码,一切都发生在哪里:

public void GetQuote(QuoteData data)
{
    using (Database db = new Database())
    {
        var result = CalculateResult(db, data);
        byte[] pdfByte = (result.Data.PDF);
        var pdf = new PDF { PDFbyte = pdfByte, CustomerId = result.Data.CustomerId };
        db.PDF.Add(pdf);
        //Here
        int rfqLast = (from x in db.Quote where x.MKCRFQ != null orderby x.Id descending select x.MKCRFQ).Take(1).SingleOrDefault();
        var rfqAdd = new Quote { MKCRFQ = rfqLast + 1 };
        result.Quote.MKCRFQ = rfqAdd.MKCRFQ;
        db.Quote.Add(result.Quote);
        db.SaveChanges();
    }
}

最新更新