Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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
C# 实体框架问题,表或视图没有主键_C#_Asp.net_Asp.net Mvc_Entity Framework_Crud - Fatal编程技术网

C# 实体框架问题,表或视图没有主键

C# 实体框架问题,表或视图没有主键,c#,asp.net,asp.net-mvc,entity-framework,crud,C#,Asp.net,Asp.net Mvc,Entity Framework,Crud,我在ASP.NET MVC中有一个使用实体框架的小crud应用程序,一切正常,只是要求我使用视图添加到crud。在任何情况下,此视图都没有主键,当我想要添加视图时,它会跳转到我的位置,显示该错误。是否有任何方法可以在不修改视图的情况下修复此问题 我附上示例视图: create view view_Prueba as select nombre, garantia, region, sucursal from region, prueba where idprue = i

我在ASP.NET MVC中有一个使用实体框架的小crud应用程序,一切正常,只是要求我使用视图添加到crud。在任何情况下,此视图都没有主键,当我想要添加视图时,它会跳转到我的位置,显示该错误。是否有任何方法可以在不修改视图的情况下修复此问题

我附上示例视图:

create view view_Prueba 
as
    select nombre, garantia, region, sucursal
    from region, prueba
    where idprue = idprue
  • 使用select查询或EF在数据库中创建视图
  • 创建包含 nombre,garantia,region,sucursal属性{get;private set;}

  • 将此视图添加到ef dbcontext

  • 公共虚拟数据库查询视图\u Pruebas{get;set;}
    .....
    实体(e=>
    {
    e、 ToView(“View_Prueba”);
    e、 HasNoKey();
    }); 
    
    如果您使用ef core版本低于core 5,请尝试以下代码

    
    public virtual DbQuery<View_Prueba> View_Pruebas { get; set; }
    
    .....
    
    
    
    公共虚拟数据库查询视图\u Pruebas{get;set;}
    .....
    
    -在ANSI-92 SQL标准(大约30年前)中,旧样式的逗号分隔表格列表样式被正确的ANSI
    JOIN
    语法所取代,其使用是discouraged@marc_s感谢您的更正,但这只是一个示例,我无法访问服务器的真实视图我相信
    .HasNoKey()
    功能仅在EF Core中可用-我没有看到OP提到EF的“Core”版本的迹象。@marc_s是正确的,我没有使用EF Core
    public virtual DbQuery<View_Prueba> View_Pruebas { get; set; }
    
    .....
    
    
      modelBuilder.Entity<View_Prueba>(e =>
                {
                    e.ToView("View_Prueba");
                    e.HasNoKey();
                }); 
    
    
    public virtual DbQuery<View_Prueba> View_Pruebas { get; set; }
    
    .....