Как обновить объект

#c# #entity-framework #entity-framework-4

#c# #entity-framework #entity-framework-4

Вопрос:

Я вставляю объект в список и сохраняю.

Таблица Desk (идентификатор автоматического включения int, имя переменной)

 var desk = new Desk()
           {
           name = "newName"
           };

m_RoomsContext.Desks.Add(desk);
m_RoomsContext.SubmitChanges();
  

//desk.id == 0

Мне нужно получить идентификатор рабочего стола. Как это сделать?

идентификатор свойства:

 /// <summary>
    /// No Metadata Documentation available.
    /// </summary>
    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Int32 id
    {
        get
        {
            return _id;
        }
        set
        {
            if (_id != value)
            {
                OnidChanging(value);
                ReportPropertyChanging("id");
                _id = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("id");
                OnidChanged();
            }
        }
    }
    private global::System.Int32 _id;
    partial void OnidChanging(global::System.Int32 value);
    partial void OnidChanged();
  

edmx:

  <EntityType Name="Desk">
          <Key>
            <PropertyRef Name="id" />
          </Key>
          <Property Name="id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
          <Property Name="width" Type="float" Nullable="false" />
          <Property Name="height" Type="float" Nullable="false" />
          <Property Name="x" Type="int" Nullable="false" />
          <Property Name="y" Type="int" Nullable="false" />
          <Property Name="countMax" Type="int" Nullable="false" />
          <Property Name="countReal" Type="int" />
          <Property Name="date" Type="datetime" />
          <Property Name="id_status" Type="int" Nullable="false" />
        </EntityType>
  

Комментарии:

1. Id В вашей модели объекта определено с помощью StoreGeneratedPattern.Identity (проверьте свойства Id свойства в файле EDMX)?

2. Я обновляю сообщение. нет StoreGeneratedPattern. Идентификатор существует.

Ответ №1:

После отправки посмотрите на desk.ID свойство => ему будет присвоено новое значение из базы данных.