gcogco10 Ответов: 1

System.data.entity.core.entitycommandexecutionexception: 'произошла ошибка при выполнении определения команды. Подробности смотрите во внутреннем исключении.'


Привет Команда

Я столкнулся с этим исключением, когда мне пришлось изменить имя поля из таблицы в моей базе данных.
System.Data.Entity.Core.EntityCommandExecutionException
  HResult=0x8013193C
  Message=An error occurred while executing the command definition. See the inner exception for details.
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

Inner Exception 1:
SqlException: Invalid object name 'dbo.TrainingRegForms'.


Что я уже пробовал:

// Model
<pre>public class TrainingRegForm
    {
        [Key]
        public int? Id { get; set; }
        public string Title { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Position { get; set; }
        public string Company { get; set; }

        public string StreetAddress { get; set; }

        public string StreetAddressLine { get; set; }

        public string City { get; set; }
        public string StateProvince { get; set; }

        public int ZipCode { get; set; }

        public string Country { get; set; }

        public string Email { get; set; }

        public string CellNumber { get; set; }
        public string DietaryRequirement { get; set; }
    }


// Контроллер
public ActionResult Download_XMLReport()
        {
            eNtsaRegistration context = new eNtsaRegistration();

            ReportDocument rpt = new ReportDocument();
            
            rpt.Load(Path.Combine(Server.MapPath("~/Reports"), "AcademyReports.rpt"));
            rpt.SetDataSource(context.TrainingRegs.Select(c => new
            {
                Id = c.Id,
                Title = c.Title
            }).ToList());
           

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();

            rpt.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Landscape;
            rpt.PrintOptions.ApplyPageMargins(new CrystalDecisions.Shared.PageMargins(5, 5, 5, 5));
            rpt.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA5;

            Stream stream = rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
            stream.Seek(0, SeekOrigin.Begin);




            return File(stream, "application/xml", "eNtsaReportTrainingForm.xml");
        }

1 Ответов

Рейтинг:
1

Sandeep Mewara

Это может быть одно из следующих действий:

1. такой таблицы нет (dbo.TrainingRegForms)
2. таблица есть, но нет схемы dbo (она может быть в XYZ.TrainingRegForms вместо dbo.Тренингрегформы)
3. БД чувствительна к регистру, и таким образом таблица является dbo.TRAININGREFFORMS

Пожалуйста, проверьте настройки вашей базы данных и таблицу в ней, к которой вы пытаетесь получить доступ.


gcogco10

Сандип, я случайно удалил из самой базы данных. Хотя DbContext указывает на это. На SQLServer таблица удаляется, попытка сделать "обновление-база данных" также терпит неудачу. Что я могу сделать?

Sandeep Mewara

Для его создания вам нужно будет использовать команду CREATE TABLE.

gcogco10

на самом sql - сервере или консоли из visual studio?