lexxpavlov
@lexxpavlov
Программист, преподаватель

Как использовать базу данных LocalDb с помощью ADO.NET EDM в WPF-проекте?

1) Создаю новый WPF-проект в Visual Studio Community 2015 (Update 2).
2) Устанавливаю EntityFramework 6.1.3 через NuGet.
3.1) Добавляю элемент EDM, тип из базы данных
3.2) Создаю новую базу "DB", указав файл в корне проекта (где лежит App.config), устанавливаю галочку сохранить настройки подключения в App.config
3.3) включаю внешние ключи (таблиц пока нет, но всё-таки галочку ставлю)
3.4) Создаю таблицу Test с полями Id и Name, обновляю.
3.5) Добавляю пару записей данных.
3.6) В edmx обновляю модель из базы данных, сохраняю. Создастся класс Test.
3.7) В App.config автоматически настроился connectionStrings
<connectionStrings>
    <add name="DBEntities" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\DB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

4) Создаю класс MainVm.cs (в корне проекта):
using System.Collections.ObjectModel;

namespace DbTest
{
    public class MainVm
    {
        private static readonly DBEntities Entities = new DBEntities();

        public ObservableCollection<Test> Tests { get; set; } = Entities.Test.Local;
    }
}

5) Обновляю MainWindow.xaml:
<Window x:Class="DbTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:DbTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.DataContext>
        <local:MainVm/>
    </Window.DataContext>
    <Grid>
        <DataGrid ItemsSource="{Binding Tests}"/>
    </Grid>
</Window>


По идее, всё. Должна показываться таблица с данными. Что я не правильно сделал или что-то забыл?
В списке ошибок пишется
No connection string named 'DBEntities' could be found in the application config file
  • Вопрос задан
  • 2500 просмотров
Пригласить эксперта
Ответы на вопрос 2
C:\Windows\System32>"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" stop MSSQLLocalDB
ДЕаттач ,если что.
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
private static readonly DBEntities Entities = new DBEntities( строка подключения к бд );

строка подключения типа "Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\base.mdf;Integrated Security=True"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы