从AddOrUpdate中检索id

时间:2016-02-22 09:51:04

标签: c# entity-framework

我有一个实体如下:

AddOrUpdate

我试图编写一个方法ColorId一个实体并从保存的对象返回public int AddOrUpdateColor(string ColorCode, int ColorInt) { db.ColorPalletteColors.AddOrUpdate( c => c.ColorCode, new ColorPaletteColor { ColorCode = ColorCode, ColorInt = ColorInt }); db.SaveChanges(); return c.; //Shall return the ColorId here. }

openModal

我对这种方法不太确定,我想从保存的对象中返回一个id,但不能指向它。

4 个答案:

答案 0 :(得分:4)

首先将对象分配给变量:

public int AddOrUpdateColor(string ColorCode, int ColorInt)
{
    var color = new ColorPaletteColor 
        {
            ColorCode = ColorCode,
            ColorInt = ColorInt
        };

    db.ColorPalletteColors.AddOrUpdate(c => c.ColorCode, color);   
    db.SaveChanges();

    return color.ColorId; 
}

答案 1 :(得分:3)

如果您首先将其分配给变量,

Id将自动为您填写:

public int AddOrUpdateColor(string ColorCode, int ColorInt)
{
    var colorPaletteColor = new ColorPaletteColor 
        {
            ColorCode = ColorCode,
            ColorInt = ColorInt
        };

    db.ColorPalletteColors.AddOrUpdate(c => c.ColorCode, colorPaletteColor);   
    db.SaveChanges();

    return colorPaletteColor.ColorId; 
}

答案 2 :(得分:1)

public int AddOrUpdateColor(string ColorCode, int ColorInt)
{
    var color = db.ColorPalletteColors.FirstOrDefault(c => c.ColorCode == ColorCode);
    if (color == null)
    {
       color = new ColorPaletteColor()
       {
          ColorCode = ColorCode;
       };
       db.ColorPaletteColors.AddObject(color);

    }
    color.ColorInt = ColorInt;
    db.SaveChanges();

    return color.ColorId; //Shall return the ColorId here.
}

答案 3 :(得分:0)

我说PdfVeryDenseMergeTool应填充 生成的ID ,因此您可以直接退回。

在方法中使用c.ColorId来执行此操作...