Я получаю следующую трассировку стека, когда мой код пытается выполнить процедуру сохранения, которая присутствует в файле .dbml
.
Я подозреваю только, что плюрализация в какой-то мере споткнулась сама по себе. В БД нет таблицы с именем
t_wfe_user_role
. Он называетсяt_wfe_user_roles
, но затем Linq переименовывает его вt_wfe_user_role
в графическом интерфейсе файла.dbml
. Эта таблица представляет собой таблицу соединений с двумя внешними ключами.
Любые идеи!?
Это фрагмент кода, из которого я вызываю процедуру хранилища. Вызов находится в конце (sp_wfe_transfer_task_force):
если нет проблем с повторным созданием модели данных, вы можете отключить множественное число и генерировать класс. в Visual Studio В меню Сервис щелкните Параметры.
public class ContinueWorkflows
{
public AppVariables _APPVARS = new Utility.AppVariables();
public void ContinueWFs(int[] cases, string type)
{
foreach (int Case in cases)
{
if (Case != 0)
{
_APPVARS = (Utility.AppVariables)System.Web.HttpContext.Current.Session["CommonAppVariables"];
LinqDataClasses.DataClasses.WorkflowsDataContext wfdc = new LinqDataClasses.DataClasses.WorkflowsDataContext(_APPVARS.SQLConnectionString);
LinqDataClasses.DataClasses.t_wfe_workflow wf = wfdc.t_wfe_workflows.Where(p => p.c_d2_case_ref == Case && p.c_cancelled != true).FirstOrDefault();
if (wf != null)
{
LinqDataClasses.DataClasses.t_wfe_state state = wfdc.t_wfe_states.Where(p => p.c_workflow_ref == wf.c_rowid && p.c_cancelled != true).FirstOrDefault();
if (state != null)
{
LinqDataClasses.DataClasses.t_wfe_transfer transfer;
if (type == "Beslut")
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Till beslut" && p.c_cancelled != true).FirstOrDefault();
if (transfer == null)
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Övergång direkt till beslut" && p.c_cancelled != true).FirstOrDefault();
}
if (transfer == null)
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Övergång till beslut" && p.c_cancelled != true).FirstOrDefault();
}
}else if (type == "BVS")
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Stopp" && p.c_cancelled != true).FirstOrDefault();
}
else if (type == "TUFF")
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Preliminärt besked" && p.c_cancelled != true).FirstOrDefault();
}
else // SIS Prel Besked
{
transfer = wfdc.t_wfe_transfers.Where(p => p.c_from_step_ref == state.c_step_ref && p.c_name == "Övergång till preliminärt besked" && p.c_cancelled != true).FirstOrDefault();
}
if (transfer != null)
{
//Do transfer
int transref = transfer.c_rowid;
wfdc.sp_wfe_transfer_task_force(1, _APPVARS.DiaryRef, state.c_rowid, transref);
}
}
}
}
}
}
}
Недействительное имя объекта 't_wfe_user_role'.
в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data. SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj)
в System.Data.SqlClient.TdsParserDataRunler (SqlClient.TdsParserDataRunler, SqlClient.TdsParserhavior, RunBehavior, cmdBehavior dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlDataReader.ConsumeMetaData ()
в System.Data.SqlClient.SqlDataReader.get_MetaData. FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean eturnStream, Boolean async)
в System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior, cmdBehavior, RunBehavior runBehavior, Boolean returnStream, метод String, результат DbAsyncResult)
в System.Data.SqlClient. , RunBehavior runBehavior, Boolean returnStream, метод String)
в System.Data.SqlClient.SqlCommand.ExecuteReader (поведение CommandBehavior, метод String)
в System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (поведение CommandBehavior)
в System.Data.Common.DbCommand.ExecuteReader ()
в System.Data.Linq.SqlClient.SqlProvider.Execute (запрос выражения, QueryInfo queryInfo, фабрика IObjectReaderFactory, Object [] parentArgs, Object [] userArgs, ICompiledSubQuery [] подзапросы, объект lastResult)
в System.Data.Linq.SqlClient.SqlProvider.ExecuteAll (запрос выражения, QueryInfo [] queryInfos, фабрика IObjectReaderFactory, Object [] userArguments, ICompiledSubQuery [] su bQueries)
в System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute (запрос выражения)
в System.Data.Linq.DataContext.ExecuteMethodCall (экземпляр объекта, MethodInfo methodInfo , Параметры объекта [])
в LinqDataClasses.DataClasses.WorkflowsDataContext.sp_wfe_transfer_task_force (Nullable_2_1 p_d2_diary_ref, Nullable_3_1 p_transfer_ref) в C: \ Documents and Settings \ Administrator \ CommonDataClasses \ SPShanData_Bidrags \ Workflows.designer.cs: строка 347
в SPSM. ContinueWorkflows.ContinueWFs (случаи Int32 [], тип String) в C: \ Documents and Settings \ Administrator \ My Documents \ SPSM-Bidragshantering_Origo \ SPSM \ Main \ SIS \ Applications \ SIS-PreteriorDecision \ ContinueWorkflows.cs: строка 67 - person Björn   schedule 20.02.2012