PL
C# - przykład użycia LINQ to SQL wraz z Microsoft SQL Server
5
points
Celem tego artykułu jest pokazanie, jak w prosty sposób można tworzyć aplikację konsolową .NET Framwework, która komunikuje się z bazą danych przy użyciu LINQ to SQL, znajdującą się na serwerze Microsoft SQL.
Wykonaj kroki
- Utwórz projekt konsolowy typu .NET Framework (np. wersja 4.8).
Uwaga: domyślnie tylko projekty typu .NET Framework wspierają LINQ to SQL (zamiennik dla innych wersji .NET znajdziesz tutaj).
- Dodaj do projektu referencje do
System.Data.Linq:
Dodawanie do projektu C# /.NET referencji.
Dodawanie do projektu C# /.NET Framework referencji do System.Data.Linq. - Umieść w projekcie 2 kasy
- Dodaj klasę
UserEntity:using System; using System.Data.Linq.Mapping; namespace ConsoleApp { [Table(Name = "Users")] public class UserEntity { [Column(IsPrimaryKey = true, Name = "Id")] public long Id { get; set; } [Column(Name = "Name")] public string Name { get; set; } [Column(Name = "Role")] public string Role { get; set; } // ADMIN, MODERATOR, TEACHER, STUDENT [Column(Name = "CreatedAt")] public DateTime? CreatedAt { get; set; } [Column(Name = "RemovedAt")] public DateTime? RemovedAt { get; set; } } } - Dodaj klasę
Program:using System; using System.Data.Linq; using System.Linq; namespace ConsoleApp { public class Program { public static void Main() { // Uwaga: zmień `DESKTOP-123ABC\SQLEXPRESS` na nazwę swojego serwera // ewentualnie użyj `localhost` lub `localhost\SQLEXPRESS` string connectionString = @"Data Source=DESKTOP-123ABC\SQLEXPRESS;Initial Catalog=projectdb;Integrated Security=True"; using (DataContext dataContext = new DataContext(connectionString)) { Table<UserEntity> users = dataContext.GetTable<UserEntity>(); IQueryable<UserEntity> query = from user in users where user.RemovedAt.HasValue == false // user.RemovedAt == null select user; foreach (UserEntity user in query) Console.WriteLine("{0} {1}", user.Id, user.Name); } } } }
- Dodaj klasę
- Używając SQL Server Management Studio (SSMS):
Wskazówki:
- Nawiąż połączenie z serwerem SQL.
- Utwórz nową bazę danych np. o nazwie
projectdb. - Utwórz nową tabelę np. o nazwie
Users.
Przykładowe zapytanie SQL:USE [projectdb] GO CREATE TABLE [dbo].[Users] ( [Id] BIGINT IDENTITY(1,1) NOT NULL, [Name] NCHAR(50) NOT NULL, [Role] NCHAR(20) NOT NULL, [CreatedAt] DATETIME NOT NULL, [RemovedAt] DATETIME, PRIMARY KEY ([Id]) ); GO
Przykładowa baza danych MS SQL. - Wstaw do tabeli przykładowych użytkowników, np. używając poniższego zapytania SQL:
USE [projectdb] GO SET IDENTITY_INSERT [dbo].[Users] ON; INSERT INTO [dbo].[Users] ([Id], [Name], [Role], [CreatedAt], [RemovedAt]) VALUES (1, 'Jan', 'ADMIN', CURRENT_TIMESTAMP, null), (2, 'Tomasz', 'MODERATOR', CURRENT_TIMESTAMP, null), (3, 'Marek', 'STUDENT', CURRENT_TIMESTAMP, null); GO
- Uruchom aplikację i sprawdź, czy dostałeś następujące wyniki w konsoli:
1 Jan 2 Tomasz 3 Marek