Asp.net mvc 调用过程的实体框架核心键属性错误
我正在使用ASP.NET内核和实体框架内核 我在尝试调用SQL Server过程时遇到数据模型问题 如果我没有设置Asp.net mvc 调用过程的实体框架核心键属性错误,asp.net-mvc,stored-procedures,entity-framework-core,Asp.net Mvc,Stored Procedures,Entity Framework Core,我正在使用ASP.NET内核和实体框架内核 我在尝试调用SQL Server过程时遇到数据模型问题 如果我没有设置Key属性,则绑定数据模型的FromSql方法不起作用 这是我的代码: 数据模型类 public class AdminMemberLoginResult { public int AdminIndex { get; set; } public string AdminId { get; set; } public string AdminName { get
Key
属性,则绑定数据模型的FromSql
方法不起作用
这是我的代码:
数据模型类
public class AdminMemberLoginResult
{
public int AdminIndex { get; set; }
public string AdminId { get; set; }
public string AdminName { get; set; }
public bool IsChangePwd { get; set; }
}
DbContext
class
public partial class GameContext : DbContext
{
public GameContext()
{
}
public GameContext(DbContextOptions<GameContext> dbContextOption) : base(dbContextOption)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer("data base connection string");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
public virtual DbSet<AdminMemberLoginResult> AdminMemberLogin { get; set; }
//public virtual DbSet<DefaultStatisticsResult> DefaultStatistics { get; set; }
}
public部分类GameContext:DbContext
{
公共游戏环境()
{
}
公共游戏上下文(DbContextOptions dbContextOption):基本(dbContextOption)
{
}
配置时受保护的覆盖无效(DBContextOptions Builder Options Builder)
{
optionsBuilder.UseSqlServer(“数据库连接字符串”);
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
}
公共虚拟数据库集
在我的数据模型中,如果没有键
属性设置,我如何使用FromSql
方法?这个问题已经有一年多的历史了,但似乎没有太多的答案
我刚刚遇到了同样的问题,通过在DbContext中将DbSet更改为DbQuery,我能够解决这个问题
这是使用dot net core 2.1。这里有两种不同的方法可供阅读:错误明确说明:实体类型……需要定义主键。-它是必需的-因此没有办法,也没有技巧-只需定义一个可行的键!不使用主键的原因是什么?从DB的角度来看,即使不需要,具有标识的主键列也不会影响任何事情。它只是用于标识每一行。实体框架需要主键。很抱歉,没有回答您的问题。
var loginResult = _dbContext.Set<AdminMemberLoginResult>()
.FromSql("exec Game.dbo.sp_admin_getAdminMemberLogin @p_id, @p_pwd",
new SqlParameter("@p_id", id),
new SqlParameter("@p_pwd",pwd)).AsNoTracking().SingleOrDefault();