我有这三个模型:
public class Card
{
public int ID { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public string Image { get; set; }
}
public class Deck
{
public int ID {get; set;}
public string Name {get; set;}
public string Class {get; set;}
public virtual ICollection<DeckCard> DeckCards {get; set;}
}
public class DeckCard
{
public int ID {get; set;}
public int DeckID {get; set;}
public int CardID {get; set;}
} …Run Code Online (Sandbox Code Playgroud) 我有这个类代表我的用户:
public class User
{
public int ID {get; set;}
public string UserName {get; set;}
[DataType(DataType.Password)]
public string Password {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我的寄存器方法的简单版本如下所示:
[HttpPost]
Register(User newUser)
{
...
_context.add(newUser);
await _context.SaveChangesAsync();
...
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:我应该在存储之前从常规字符串中更改密码类型吗?如果是这样,对于什么数据类型?
using (IDbConnection dbConnection = openConnection)
{
string uQuery = "INSERT INTO User (Email, UserName, Password)"
+ " VALUES(@Email, @UserName, @Password)";
dbConnection.Open();
dbConnection.Execute(uQuery, User);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个sql异常:关键字'User'附近的语法不正确.在db.Connection.Execute语句上.即使我省略了语句的User参数,我也会得到相同的错误.我插错了吗?
public class UserAccount
{
private readonly IHttpContextAccessor _httpContextAccessor;
public UserAccount(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
//Sign in
public static async Task SignIn(dynamic user)
{
var claims = new[]
{
new Claim("UserID", user.ID.ToString()),
new Claim(ClaimTypes.Role, "Baller")
};
var principal = new ClaimsPrincipal(
new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme));
await _httpContextAccessor.HttpContext.Authentication.SignInAsync("Cookies", principal);
}
}
Run Code Online (Sandbox Code Playgroud)
我从SignIn方法的await语句中收到此错误: 非静态字段,方法或属性“ UserAccount._httpContextAccessor”需要对象引用
如果我未将方法声明为静态,则错误消失,但是如果方法ISN未声明为静态,则无法从我的控制器访问UserAccount.SignIn方法。
如果我这样声明变量_httpContextAccessor:
private static IHttpContextAccessor
Run Code Online (Sandbox Code Playgroud)
而不是:
private readonly IHttpContextAccessor
Run Code Online (Sandbox Code Playgroud)
所有错误都消失了,但是在await语句上又得到了空引用异常。(_httpContextAccessor未设置为对象的实例)
我想用测试数据为我的数据库做种子,但它看起来好像 DbInitializer 类需要 DbContext 类或从 DbContext 派生的类。到目前为止,我已经通过使用 EF 的教程学习了 ASP.NET。现在我要转移到不同的 ORM(Dapper),但我仍然想用测试数据为我的数据库做种子。我尝试使用谷歌搜索“不使用 EF 的种子数据库”,所有结果都是关于首先使用 EF 代码。是否有不同的类或方法可以用于此目的?
我正在建立一个网站,并推送到一个存储库与我的朋友分享,以便他可以审查/批评,他得到了我的情况,因为我没有使用git ignore文件.
在git提交中要忽略的一些通用文件夹是什么?
有人可以给我一个示例文件吗?
asp.net-core ×2
c# ×2
asp.net-mvc ×1
dapper ×1
git ×1
httpcontext ×1
passwords ×1
sql ×1
sql-server ×1