如何使用 Roslynpad 通过 Ado.Net、Dapper 和 Entity Framework 连接到 SQL Server?
这个 roslynpad 片段应该可以帮助您连接到数据库。
您可以通过在查询中间的文本框中输入名称并手动添加 using 语句来添加包
这就是结果
#r "nuget: Microsoft.Data.SqlClient, 5.1.1"
using Microsoft.Data.SqlClient;
更改连接字符串
conStr
并使用您的数据库服务器、数据库名称、用户名和密码。
string conStr = @"Data Source=<dbSrv>;Initial Catalog=<dbname>;"; // only splitted
conStr += conStr + "Integrated Security=False;"; // to
conStr += conStr + "TrustServerCertificate=true;"; // avoid
conStr += conStr + "User id=<user>;Password=<pass>"; // a scrollbar
然后你就可以连接到你的数据库了
#r "nuget: Microsoft.Data.SqlClient, 5.1.1"
using Microsoft.Data.SqlClient;
string conStr = "<your-string-goes-here>";
var p = new List<Product>(); // list to store the results from the sql query
string sqlQuery = "SELECT ID as Id, ProductName FROM dbo.Products;";
using (SqlConnection connection = new SqlConnection(conStr))
{
SqlCommand command = new SqlCommand(sqlQuery, connection);
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
// add result row to list
p.Add(new Product{Id= (int)reader[0] , ProductName =(string)reader[1]});
}
}
}
// show list content
p.Dump();
public class Product
{
public int Id{ get; set; }
public string ProductName { get; set; }
};
使用 dapper 从 sql-server 获取记录可以通过此代码完成
#r "nuget: Microsoft.Data.SqlClient, 5.1.1"
#r "nuget: System.Data.Common, 4.3.0"
#r "nuget: Dapper, 2.0.151"
using System.Data;
using Microsoft.Data.SqlClient;
using Dapper;
string conStr = "<yourConnectionString>";
string sqlQuery = "SELECT ID as Id, ProductName FROM dbo.Products;";
Product product;
IEnumerable<Product> products;
using (IDbConnection connection = new SqlConnection(conStr))
{
products = connection.Query<Product>(sqlQuery);
}
products.Dump();
product = products.FirstOrDefault<Product>();
product.Dump();
public class Product
{
public int Id{ get; set; }
public string ProductName { get; set; }
};
下面的代码显示了如何设置与数据库的连接并在类成员和表中的不同列名称之间创建映射
查询开始
#r "nuget: Microsoft.Data.SqlClient, 5.1.1"
#r "nuget: Microsoft.EntityFrameworkCore, 7.0.11"
#r "nuget: Microsoft.EntityFrameworkCore.SqlServer, 7.0.11"
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.SqlServer;
using System;
using System.Collections.Generic;
using System.Diagnostics;
static class Program {
[STAThread]
static void Main() {
ApplicationDbContext context = new ApplicationDbContext();
var models = context.Models.ToList();
models.Dump();
}
}
在
Program.Main
之后,您还必须添加此代码
public sealed class CsModel
{
public decimal ModelId { get; set; }
public string Name { get; set; }
public double? Price { get; set; }
}
public class ApplicationDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string cnn = @"<your-connection>";
optionsBuilder.UseSqlServer(cnn);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// ... see below
}
//entities
public DbSet<CsModel> Models { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<CsModel>(entity =>
{
entity.HasKey(e => e.ModelId)
.HasName("PK__CS_MODEL__1E");
entity.ToTable("CS_MODEL", "dbo");
entity.Property(e => e.ModelId)
.HasColumnType("numeric(19, 0)")
.ValueGeneratedOnAdd()
.HasColumnName("MODEL_ID");
entity.Property(e => e.Name)
.HasMaxLength(255)
.IsUnicode(false)
.HasColumnName("NAME");
entity.Property(e => e.Price).HasColumnName("PRICE");
});