先安装需要用的Nuget包:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools //如果用vscode这个包就足够了
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
然后数据库中新建好表我这里做的是登录功能
映射字符串,Server:你的服务名;Database:数据库名称;uid:用户名;pwd:密码
你安装的是Nuget包: Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Scaffold-DbContext "Server=LAPTOP-KT5D4AIV;Database=UserLogin;Trusted_Connection=True;uid=sa;pwd=123456" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
映射成功后在appsettings.json 中配置连接字符串
"ConnectionStrings": {
"DefaultConnection": "Server=LAPTOP-KT5D4AIV;Database=UserLogin;Trusted_Connection=True;uid=sa;pwd=123456"
},
.net6 中Program配置服务注入
var configuration = builder.Configuration;
builder.Services.AddDbContext<UserLoginContext>(opt =>
{
//获取连接字符串
opt.UseSqlServer(configuration.GetConnectionString("DefaultConnection"));
//取消跟踪机制,不需要每次使用的时候Using
opt.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
});
vs code 配置.net环境
(1)安装自己需要的.net的sdk版本
(2) 安装 vscode-solution-explorer插件用于创建项目
(3) 安装C#插件
vs code 安装dotnet-ef 工具 : dotnet tool install dotnet-ef -g
vs code 卸载dotnet-ef 工具 : dotnet tool uninstall dotnet-ef -g
vs code Dbfirst 映射字符串 dotnet ef dbContext Scaffold "Server=LAPTOP-KT5D4AIV;Database=UserLogin;Trusted_Connection=True;uid=sa;pwd=123456" Microsoft.EntityFrameworkCore.SqlServer -o Models --force
以上都配置完成后写一个简单的登录功能
public class LoginService : ILoginService
{
public LoginService(UserLoginContext context, IMemoryCache memoryCache)
{
Context = context;
MemoryCache = memoryCache;
}
public UserLoginContext Context { get; }
public IMemoryCache MemoryCache { get; }
public async Task<Result> ChekLogin(User user)
{
Result result = new Result();
if (string.IsNullOrEmpty(user.UserName))
{
result.msg = "请输入账号";
result.code = false;
}
else
{
var resUser = await Context.Logins.Where(m => m.UserName == user.UserName).FirstOrDefaultAsync();
if (resUser == null)
{
result.msg = "账号错误";
result.code = false;
}
else if (resUser.PassWord == user.Password)
{
resUser.BeforeLoginTime = resUser.LaterLoginTime ?? resUser.FoundTime;
resUser.LaterLoginTime = DateTime.Now;
Context.Update(resUser);
var time = await Context.SaveChangesAsync();
if (time > 0)
{
var userToken = new ResUser();
userToken.UserName = resUser.UserName;
userToken.Token = Guid.NewGuid().ToString();
var hasDic = MemoryCache.TryGetValue("token", out Dictionary<string, ResUser> dic);
if (!hasDic)
{
//如果不存在重新创建一个字典;
dic = new Dictionary<string, ResUser>();
}
dic.Add(userToken.Token, userToken);
MemoryCache.Set("token", dic);
result.code = true;
result.data = userToken.Token;
result.msg = "登录成功";
}
}
result.msg = "密码错误";
result.code = false;
}
return result;
}
}