Изменить значения перед вставкой через объект EntityDataSource - PullRequest
1 голос
/ 07 ноября 2011

У меня есть следующий объект EntityDataSource:

 <asp:EntityDataSource ID="EntityDataSource1" runat="server"
    ContextTypeName="IntraNET_Prototype.IntraNetEntities" 
    ConnectionString="name=IntraNetEntities" 
    DefaultContainerName="IntraNetEntities" 
    EnableDelete="True" EnableInsert="True" 
    EnableUpdate="True" EntitySetName="EmployeeList" 
    OnInserting="EntityDataSource_Inserting" />

Я пытаюсь добавить новые данные, которые я добавил в свою сетку, в свою базу данных.

Проблема в том, что когда я нажимаю кнопку «Добавить» в моей сеточной панели, я автоматически получаю отрицательное значение для моего первичного ключа, которое является просто идентификатором.

Поэтому я пытаюсь манипулировать значением id из объекта, который будет вставлен, вызывая метод OnInserting = "EntityDataSource_Inserting".

        protected void EntityDataSource_Inserting(object sender, EntityDataSourceChangingEventArgs e)
    {


    }

Я планировал создать новую ссылку на объект набора данных и установить ее для объекта, который будет вставлен, а затем изменить идентификатор первичного ключа.

В любом случае, моя попытка установить myDatasetObject newElement = e.Entity не сработала, так как VisualStudio сообщает мне, что я пропустил приведение.

Как сделать это правильно и установить это в правильном порядке?

Любая помощь будет оценена.

Если вы знаете какой-либо лучший способ автоматически установить первичную клавишу (просто непрерывную цифру) (маркер идентификатора), дайте мне знать!

СПАСИБО

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

Тем временем я понял, как сделать то, что я хотел сделать, я не уверен, что это не плюс способ ультра, но он работает!

        protected void EntityDataSource_Inserting(object sender, EntityDataSourceChangingEventArgs e)
{
myDatasetObject newElement = e.Entity as myDatasetObject;
newElement.id = NextPrimaryID();
}

Идентификаторэлемент будет изменен так, как мне нужно, и после этого он будет сохранен в базе данных: -)

0 голосов
/ 07 ноября 2011

Какую базу данных вы используете и какой тип данных вашего ПК?Вы можете просто сделать PK и столбец идентификаторов, и тогда EF позаботится о том, чтобы вернуть значение PK для вас после создания записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...