Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 调用过程的实体框架核心键属性错误_Asp.net Mvc_Stored Procedures_Entity Framework Core - Fatal编程技术网

Asp.net mvc 调用过程的实体框架核心键属性错误

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

我正在使用ASP.NET内核和实体框架内核

我在尝试调用SQL Server过程时遇到数据模型问题

如果我没有设置
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();