EF5: несколько наборов результатов из хранимой процедуры

Я следил за эту статью, чтобы получить несколько наборов сущностей из хранимой процедуры.

Я изменил сопоставления столбцов своих сущностей, чтобы они проходили через Resharper. Нужно ли переписывать сопоставления столбцов в сопоставлении результатов?

Например, у меня есть следующий EntitySetMapping:

      <EntitySetMapping Name="IrmaObjectConfiguraties">
        <EntityTypeMapping TypeName="IrmaModel.IrmaObjectConfiguratie">
          <MappingFragment StoreEntitySet="IrmaObjectConfiguratie">
            <ScalarProperty Name="Gid" ColumnName="GID" />
            <ScalarProperty Name="IrmaObjectGid" ColumnName="IrmaObject_GID" />
            <ScalarProperty Name="IrmaConfiguratieGid" ColumnName="IrmaConfiguratie_GID" />
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>

Этот объект возвращается bij как часть сохраненных наборов результатов proc:

        <ResultMapping>
          <EntityTypeMapping TypeName="IrmaModel.IrmaObjectConfiguratie">
            <!--ScalarProperty Name="Gid" ColumnName="Gid" />
            <ScalarProperty Name="IrmaObjectGid" ColumnName="IrmaObject_Gid" />
            <ScalarProperty Name="IrmaConfiguratieGid" ColumnName="IrmaConfiguratie_Gid" /-->
          </EntityTypeMapping>
        </ResultMapping>

Когда я удаляю примечания, выполнение импортированной функции проходит нормально, но когда сопоставление столбцов отсутствует, я получаю следующую ошибку:

Средство чтения данных несовместимо с указанным «IrmaModel.IrmaObjectConfiguratie». Член типа IrmaObjectGid не имеет соответствующего столбца в средстве чтения данных с таким же именем.

В качестве обходного пути я мог бы снова определить все сопоставления столбцов, но также возможно использовать сопоставления столбцов, определенные в EntitySetMapping?


person pexxxy    schedule 02.10.2012    source источник
comment
Почему бы вместо этого не избавиться от resharper или хотя бы его произвольных правил?   -  person podiluska    schedule 02.10.2012
comment
Мне нравится CamelCase больше, чем использование символов подчеркивания. к сожалению, содержит символы подчеркивания базы данных в именах столбцов.   -  person pexxxy    schedule 02.10.2012


Ответы (1)


Я не думаю, что ResultMapping повторно использует сопоставления из сопоставлений EntitySet. Кажется (я не на 100% уверен здесь), что если вы не укажете свойства ‹-> сопоставления столбцов, EF попытается использовать имена свойств в качестве имен столбцов в наборе результатов, возвращаемом вашей хранимой процедурой.

person Pawel    schedule 03.10.2012
comment
Пока имена столбцов, возвращаемые хранимой процедурой, совпадают с именами свойств сущностей, вам не нужно добавлять сопоставления. Но если сопоставления такие же, как в определении сопоставления сущностей, вам необходимо добавить те же сопоставления с помощью сопоставлений набора результатов. Было бы неплохо, если бы вы могли повторно использовать сопоставления сущностей, указав дополнительный атрибут, например PropertyMapping=EntityMapping. - person pexxxy; 04.10.2012
comment
Я не думаю, что это возможно в данный момент. - person Pawel; 04.10.2012