ASP. NET MVC viewmodel SQL синтаксис запроса - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь преобразовать базовые c модели в модельные и SQL запросы. Так что не так в моих запросах или других файлах?

// GET: Cars
public ActionResult Index()
{
    List<CarsTrxViewModel> model = db.Database.SqlQuery<CarsTrxViewModel>(SqlCars.CarsTrxByID()).ToList();

    return View(model);
    // return View(db.Cars.ToList());
}

Просмотр модели:

public class CarsTrxViewModel
{
    public int CarID { get; set; }
    public string CarBrand { get; set; }
    public string CarModel { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy HH:mm:ss}")]
    public DateTime CreateDate { get; set; }
}

Запрос:

public static class SqlCars
{
    public static string CarsTrxByID()
    {
        return "select " + " * , " +
             "cars.CarID as CarID " +
            ",cars.CarBrand as CarBrand " +
            ",cars.CarModel as CarModel " +
            ",cars.CreateDate as CreateDate " +
            "from (SELECT * from [NagisOfflineDB].[dbo].[cars] )";
    }

    public static string GetCardholderByID()
    {
        return "SELECT TOP 1 * from [NagisOfflineDB].[dbo].[cars]";
    }
}

Модель:

public class Cars
{
    [Key]
    public int CarID { get; set; }

    [StringLength(50)]
    [Required]
    public string CarBrand { get; set; }

    [StringLength(250)]
    [Required]
    public string CarModel { get; set; }

    public DateTime CreateDate { get; set; }
}

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

Компилятор сообщает, что ваш запрос неверен, ошибка System.Data.SqlClient.SqlException: 'Неверный синтаксис рядом с') '.'

Полная версия ошибки

Ошибка сервера в «/» приложении.
Неверный синтаксис рядом с «)».

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Data.SqlClient.SqlException: Неверный синтаксис рядом с ')'.

Источник Ошибка:

Строка 20:
Строка 21:
Строка 22: Список моделей = db.Database.SqlQuery (SqlCars.CarsTrxByID ()). ToList ();

и трассировка стека

[SqlException (0x80131904): неверный синтаксис рядом с ')'.]
System.Data.SqlClient.SqlConnection.OnError (SqlException исключение, логическое breakConnection, действие 1 wrapCloseInAction) +2552942<br> System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction) + 5952492
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, логическое callerHasConnectionLock, Boolean asyneeBentSlayerDairWRacSservCserser.dll) , SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) +4169 System.Data.SqlClient. SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, логическое значение isInternal, логическое значение forDescribeParameterEncryption, логическое значение mustCacheForAlwaysEncrypted) +430 System.DataCl .ExlCq. ecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, логическое значение returnStream, логическое значение asyn c, время ожидания Int32, задание и задача, логическое значение asyncWrite, логическое значение inRetry, SqlDataReader ds, Boolean Описание_Relay_Relay_Relay_Relay_Relay_Revice.Exe RunBehavior runBehavior, логическое returnStream, метод String, TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) +1483 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +64 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +240 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +41 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) +12 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext 1 c) +14 System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch(TTarget target, Func 3 операция, TInterceptionContext interceptionContext, действие 3 executing, Action 3 выполнено) +72 выполнено) +72 .Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader (команда DbCommand, DbCommandInterceptionContext interceptionContext) +402 System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader (CommandBehaviorExe. ) +12 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternal (String commandText, String Свойство .Core.Objects. <> C__DisplayClass69 1.<ExecuteStoreQueryReliably>b__67() +167 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func 1 операция) +190 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryReliably (String commandText, String entitySetName, ExecutionOptions executeOptions, параметры Object [] параметры) +462 System.Data. Entity.Core.Objects.ObjectContext.ExecuteStoreQuery (String commandText, ExecutionOptions executeOptions, параметры Object []) +60 System.Data.Entity.Internal. <> C__DisplayClass14 1.<ExecuteSqlQuery>b__13() +130 System.Data.Entity.Internal.LazyEnumerator 1.MoveNext () +45 System.Collections.Generi c .List 1..ctor(IEnumerable 1 коллекция) +387 System. Web. Mvc .Asyn c .WrappedAsyncResultBase 1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32 System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58 System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228 System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10 System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndDelegate (IAsyncResult asyncResult) +10 System.Web. Mvc .Asyn c .WrappedAsyncResultBase 1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34 System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() +35 System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) +100 System.Web.Mvc.Async.WrappedAsyncResult 1.CallEndyncultRate System.Web. Mvc .Asyn c .WrappedAsyncResultBase 1.End() +49 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27 System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate (IAsyncResult asyncResult) +29 System.Web. Mvc .Asyn c .WrappedAsyncResultBase 1.End() +49 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45 System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndcate (). +22 System.Web. Mvc .Asyn c .WrappedAsyncResultBase 1.End() +49 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28 System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate (IAsyncResult asyncResult) +29 System.Web. Mvc .Asyn c .WrappedAsyncResultBase`1.End () +49 System.Web. Mvc .MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +28 System.Web. Mvc .MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRe quest (результат IAsyncResult) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +9874329 System.Web.HttpApplication.ExecuteStepImpl (шаг IExecutionStep.Tept.Tept.Step.Tept.Step.Tept.Step.Tept.Step.Tept.Step.Tept.Step.Tept.Step. Boolean и выполняется синхронно) + 159

Информация о версии:

  • Microsoft. NET Версия платформы: 4.0.30319
  • ASP. NET Версия: 4.7.3062.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...