2013-02-11 3 views
1

Привет Я создаю простое тестовое решение в VS 2012 с двумя проектами.Нет данных о времени разработки с каркасом сущности 5 в Visual Studio

Одна библиотека классов, а другая - приложение WPF. Оба используют .NET 4.5.

В библиотеке классов я добавляю элемент EF (DataFirst), который отображает простую таблицу.

Далее Я ссылаюсь на этот проект в своем проекте WPF. Добавьте EF из Nuget и используйте очень простой MVVM-образный шаблон. Я добавляю класс, который выглядит так (обратите внимание - это не производственный код - это просто для воспроизведения проблемы).

public class Class1 { 
public static Helper TheHelper { get; set; } 
public Class1() { 
    TheHelper = new Helper(); 
} 

} общественного класса Помощник { общественный помощник() { Нам = "AAA";

} 
string connectionString = "metadata=res://*/Mod.csdl|res://*/Mod.ssdl|res://*/Mod.msl;provider=System.Data.SqlClient;provider connection string=\";data source=.\\sqlx8r2;initial catalog=FCdata;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework\""; 
public string Nam { get; set; } 
#region PCs 
private List<PC> m_lPCs; 
public List<PC> PCs { 
    get { 
     if(m_lPCs == null) { 
      try { 
       using(FCdataEntities dE = new FCdataEntities(connectionString)) { 
        m_lPCs = dE.PCs.ToList(); 
       } 
      } 
      catch(Exception eX) { 
       m_lPCs = new List<PC>(); 
       m_lPCs.Add(new PC() { Description = eX.Message }); 
      } 
     } 
     return m_lPCs; 
    } 
    set { 
     if(m_lPCs != value) { 
      m_lPCs = value; 
      //RaisePropertyChanged(() => PCs); 
     } 
    } 
} 
#endregion 

Я также расширил класс контекста, как это:

public partial class FCdataEntities : DbContext { 
    public FCdataEntities(string strCon) : base(strCon) { 
    } 
} 

Так что я могу передать строку соединения, которую я скопировать из app.config.

В моем главном окне я простой привязки, как это:

 xmlns:local="clr-namespace:EFTest" 
    Title="MainWindow" Height="350" Width="1525"> 
<Window.Resources> 
    <local:Class1 x:Key="dG" /> 
</Window.Resources> 
<Grid DataContext="{Binding Path=TheHelper, Source={StaticResource dG} }"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="17*"/> 
     <RowDefinition Height="143*"/> 
    </Grid.RowDefinitions> 
    <TextBox Text="{Binding Nam}" /> 
    <ListBox ItemsSource="{Binding PCs}" Grid.Row="1"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Description}" /> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

Решение отлично работает во время выполнения. Но в VS Designer я получаю исключение, показанное в моем «фиктивном объекте», которое я создаю в блоке catch этого свойства.

Could not load file or assembly 'Windows, Version=255.255.255.255, Culture=neutral, ContentType=WindowsRuntime' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515) 

Что мне нужно данные во время разработки - и нет «фиктивных данных» - вместо этого я хочу, чтобы получить его из БДА - избегать использования EF (и использовать linq2sql для примера) работает как шарм ,

Я допустил ошибку со строкой подключения (или так) - или это просто проблема в EF 5.0?

ответ

1

Эта конкретная ошибка является известной проблемой в Entity Framework 5 с дизайнерами Visual Studio & и исправлена ​​в исходном коде Entity Framework 6. Однако есть другие ошибки времени разработки, которые я не смог решить, чтобы предотвратить запуск кода Entity Framework в дизайнере.

+0

Являются ли эти ошибки исправлены в текущей версии - или у EF-кода все еще проблема в дизайнере? – ManniAT