2013-07-29 2 views
0

Я пробовал интернет, но не смог найти хороший ответ. Вот код, который оказывает неполадкуDbContext удаленная ошибка

enter image description here

private void LoadRecords() 
    { 
     var data = from record in model.Records 
        where record.TimeStamp >= oldestRecordVisible 
        orderby record.TimeStamp descending 
        select record; 
     dataGridView1.DataSource = data.ToList(); 
    } 

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

using System.Data.Entity; 

namespace MilThicknessMonitor3.Models 
{ 
public class DataModel : DbContext 
{ 
    public DataModel() 
     : base("name=DataConnection") 
    { 

    } 
    public DbSet<Record> Records { get; set; } 
    public DbSet<CaptureSource> CaptureSources { get; set; } 
    public DbSet<PlcConfiguration> PlcConfigurations { get; set; } 
    public DbSet<Configuration> Configurations { get; set; } 

} 

}

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

Ниже приводится модель данных

using MilThicknessMonitor3.Analytics; 
using System; 
using System.ComponentModel; 

namespace MilThicknessMonitor3.Models 
{ 
    public class Record 
    { 
     public int Id { get; set; } 
     [DisplayName("Date/Time")] 
     public DateTime TimeStamp { get; set; } 
     [DisplayName("Average Measure (Mils)")] 
     public double AvgMeasure { get; set; } 
     [DisplayName("Average Measure (Millimetres)")] 
     public double AvgMilli { get { return AvgMeasure/39.37; } } 
     [DisplayName("Minimum Measure (Mils)")] 
     public double MinMeasure { get; set; } 
     [DisplayName("Minimum Measure (Millimetres)")] 
     public double MinMilli { get { return MinMeasure/39.37; } } 
     [DisplayName("Maximum Measure (Mils)")] 
     public double MaxMeasure { get; set; } 
     [DisplayName("Maximum Measure (Millimetres)")] 
     public double MaxMilli { get { return MaxMeasure/39.37; } } 
     [DisplayName("Notes")] 
     public string Notes { get; set; } 

     #region Testing Fields, Properties, and Methods 
     private DataLine offset; 
     internal DataLine Offset 
     { 
      get { return offset; } 
     } 
     private DataLine baseline; 
     internal DataLine Baseline 
     { 
      get { return baseline; } 
     } 
     private float[] results; 

     public int[] OffsetValues 
     { 
      get 
      { 
       int[] values = new int[offset.Size]; 
       int index = 0; 
       foreach (ImageColumn c in offset) 
       { 
        values[index] = c.Ys.Count; 

        index++; 
       } 
       return values; 
      } 
     } 

     public int[] BaselineValues 
     { 
      get 
      { 
       int[] values = new int[baseline.Size]; 
       int index = 0; 
       foreach (ImageColumn c in baseline) 
       { 
        values[index] = c.Ys.Count; 

        index++; 
       } 
       return values; 
      } 
     } 

     public int[] ResultValues 
     { 
      get 
      { 
       int[] values = new int[results.Length]; 
       for (int i = 0; i < results.Length; i++) 
        values[i] = (int)Math.Round(results[i]); 
       return values; 
      } 
     } 

     internal void AddOffset(DataLine offset) { this.offset = offset; } 
     internal void AddBaseLine(DataLine baseline) { this.baseline = baseline; } 
     internal void AddResults(float[] results) { this.results = results; } 
     #endregion 
    } 
} 
+1

Где вы создаете модель? Вы уверены, что не были утилизированы, прежде чем вызвать LoadRecords? – empi

+0

Кажется, что соединение с базой данных было закрыто (удалено) до того, как вы выполнили свой запрос. Покажите нам, как вы создаете свой DataModel ('DbContext') и когда (и как) вы его закрываете. – Zbigniew

+0

Из вашего кода неясно, какое значение имеет «модель». И как вы его создаете. Пожалуйста, покажите метод, который создает модель –

ответ

0

Вы должны дать более подробную информацию по модель объекта. Где он создан?

Попробуйте что-нибудь подобное.

using(var context = new DataModel()) 
{ 
    //Prepare your Model 
    var model = RecordsRepository.GetQueryableObject(); 
    //Call LoadRecords 
    return LoadRecords(model); 
} 
+0

. Я только что включил модель данных, если это то, о чем вы говорили. – user2630981

+0

Я включил модель данных. Я попытался использовать ваш код, но это не помогло. Thanks – user2630981

+0

Можете ли вы поделиться тем, что вы пробовали? DataModel - это DbContext, и если вы используете тот же контекст, чтобы получить записи, он должен работать. – Nilesh

0

Ну, я нашел решение проблемы. В основном один из моих объектов занимал неправильную конфигурацию из таблицы, не смог инициализировать и исключить исключение и в конечном итоге избавиться от контекста. Спасибо всем за вашу поддержку.

Смежные вопросы