powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
4 сообщений из 4, страница 1 из 1
Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
    #39296928
OST-RV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При инициализации DBContext выводится ошибка:

авторAdditional information: A parameter binding to the property 'ParentID' was not found on the modification function 'EditFin_DirBudgetItems'. Ensure that the parameter is valid for this modification operation and that it is not

При отображении хранимой процедуры на операцию DELETE entity framework требует отображать в параметрах только первичный ключ. А при INSERT на оборот запрещает отображать первичный ключ.
Возможно ли обойти эти ограничения?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
 
    public class BudgetItemConfigurations : EntityTypeConfiguration<BudgetItem>
    {
        public BudgetItemConfigurations()
        {
            this.HasOptional(x => x.BudgetItemParent).
                WithMany().HasForeignKey(x => x.ParentID);

            this.HasOptional(x => x.Responsible_Employee).
                WithMany().HasForeignKey(x => x.Responsible_EmployeeConstID);


            this.MapToStoredProcedures(
                bi => bi
                .Insert(sp => sp.HasName("EditFin_DirBudgetItems").//Parameter(p => p.ID, "ID").
                    Parameter(p => p.ParentID, "ParentID").
                    Parameter(p => p.Code, "Code").
                    Parameter(p => p.Description, "Description").
                    Parameter(p => p.IsIncome, "isIncome").
                    Parameter(p => p.Responsible_EmployeeConstID, "Responsible_EmployeeConstID").
                    Parameter(p => p.SessionsID, "SessionsID").
                    Parameter(p => p.RowDate, "RowDate").
                    Parameter(p => p.RowStatus, "RowStatus").Result(rs => rs.ID, "ID"))
                .Update(sp => sp.HasName("EditFin_DirBudgetItems").Parameter(p => p.ID, "ID").
                    Parameter(p => p.ParentID, "ParentID").
                    Parameter(p => p.Code, "Code").
                    Parameter(p => p.Description, "Description").
                    Parameter(p => p.IsIncome, "isIncome").
                    Parameter(p => p.Responsible_EmployeeConstID, "Responsible_EmployeeConstID").
                    Parameter(p => p.SessionsID, "SessionsID").
                    Parameter(p => p.RowDate, "RowDate").
                    Parameter(p => p.RowStatus, "RowStatus"))
                .Delete(sp => sp.HasName("EditFin_DirBudgetItems").Parameter(p => p.ID, "ID").
                    Parameter(p => p.ParentID, "ParentID").
                    Parameter(p => p.Code, "Code").
                    Parameter(p => p.Description, "Description").
                    Parameter(p => p.IsIncome, "isIncome").
                    Parameter(p => p.Responsible_EmployeeConstID, "Responsible_EmployeeConstID").
                    Parameter(p => p.SessionsID, "SessionsID").
                    Parameter(p => p.RowDate, "RowDate").
                    Parameter(p => p.RowStatus, "RowStatus"))
                );
        }
    }
...
Рейтинг: 0 / 0
Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
    #39296976
Перегонщик перекупки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой-то винегрет Вы пытаетесь сделать. хранимые процедуры и EF - весчи далекие друг от друга. И вообще-то, ограничения, с которыми Вы взялись бороться, - логичны.
...
Рейтинг: 0 / 0
Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
    #39297063
OST-RV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему далекие, если EF позволяет это сделать.
У меня хранимая процедура для всех операций с данными(Insert,Update,Delete), а какую операцию выполнить регулируется полем RowStatus. При удалении строка не удаляется а помечается, что она удалена через RowStatus = 2. В этом случаи не так уж и логично так как при удаление мне нужно как минимум два параметра ID и RowStatus.
...
Рейтинг: 0 / 0
Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
    #39297159
Перегонщик перекупки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OST-RVПочему далекие, если EF позволяет это сделать.
У меня хранимая процедура для всех операций с данными(Insert,Update,Delete), а какую операцию выполнить регулируется полем RowStatus. При удалении строка не удаляется а помечается, что она удалена через RowStatus = 2. В этом случаи не так уж и логично так как при удаление мне нужно как минимум два параметра ID и RowStatus.

тут либо EF не нужен, либо надо логику строить по-другому: RowStatus - это бизнес-требование, ему не место в репо.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обойти ограничение в Entity Framework при отображении хранимой процедуры для Insert,Delete
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]