powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ассоциировать класс с базой данных.
3 сообщений из 3, страница 1 из 1
Ассоциировать класс с базой данных.
    #38638449
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Пошагово опишу свои действия с надеждой что вы подскажите где ошибка. Использую Microsoft Visual C# 2013.
1. Создаю новый проект TestMyBase.
2. В проводнике баз данных добавляю соеденение с БД и получаю новую myBase.mdf
3. Выполняю SQL код по созданию и наполнению таблицы в БД.

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE [dbo].[Elements] (
    [ElementID]   INT             IDENTITY (1, 1) NOT NULL,
    [F1]          NVARCHAR (100)  NOT NULL,
    [F2]          NVARCHAR (500)  NOT NULL,
    [F3]          NVARCHAR (50)   NOT NULL
    PRIMARY KEY CLUSTERED ([ElementID] ASC)
);



Код: sql
1.
2.
3.
4.
5.
SET IDENTITY_INSERT [dbo].[Elements] ON
INSERT INTO [dbo].[Elements] ([ElementID], [F1], [F2], [F3]) VALUES (1, N'Строка1', N'Описание1', N'Категория1')
INSERT INTO [dbo].[Elements] ([ElementID], [F1], [F2], [F3]) VALUES (2, N'Строка2', N'Описание2', N'Категория2')
INSERT INTO [dbo].[Elements] ([ElementID], [F1], [F2], [F3]) VALUES (3, N'Строка3', N'Описание3', N'Категория3')
SET IDENTITY_INSERT [dbo].[Elements] OFF



4. Создаю класс с автосвойствами , который будет представлять строку БД
...
Рейтинг: 0 / 0
Ассоциировать класс с базой данных.
    #38638458
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUser,

Читай про Entity Framework Code First
...
Рейтинг: 0 / 0
Ассоциировать класс с базой данных.
    #38638529
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно отправил тему не дописав ее....
и так класс представляющий строку БД
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestMyBase
{
    public class Element
    {
        public int ElementID { get; set; }
        public string F1 { get; set; }
        public string F2 { get; set; }
        public string F3 { get; set; }

    }
}



5.Делаю веб-форму и перетаскиваю на нее таблицу БД Elements для автоматического создания строки подключения в конфиге
6. Через NuGet загружаю/устанавливаю пакет EntityFramework
в результате вот так теперь выглядит конфиг
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
<?xml version="1.0" encoding="utf-8"?>
<!--
  Дополнительные сведения по настройке приложения ASP.NET см. по ссылке
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="myBaseConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\ADM\Documents\myBase.mdf;Integrated Security=True;Connect Timeout=30" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>



7. Создаю класс производный от DbContext
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace TestMyBase
{
    public class myBaseConnection : DbContext
    {
        public DbSet<Element> Elements { get; set; }
    }
}



8. Создаю класс хранилища
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestMyBase
{

    public class Repository
    {
        private myBaseConnection context = new myBaseConnection();
        public IEnumerable<Element> Elements
        {
            get { return context.Elements; }
        }
    }
}



9. Ну и в конечном итоге попробуем все это использовать:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TestMyBase
{
    public partial class Default : System.Web.UI.Page
    {
        Repository repo = new Repository();
        protected void Page_Load(object sender, EventArgs e)
        {
            foreach(Element el in repo.Elements)
            {
                Response.Write("  </br>" + el.F1);
            }
        }
    }
}



И чудо , все заработало! Пока описывал проблему все заработало!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ассоциировать класс с базой данных.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]