Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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#_Sql Server_Entity Framework_Linq_Filtering - Fatal编程技术网

C# 筛选具有行号的视图以生成序列号

C# 筛选具有行号的视图以生成序列号,c#,sql-server,entity-framework,linq,filtering,C#,Sql Server,Entity Framework,Linq,Filtering,我有这样的看法 Create view RefStatus as select row_number() over(order by Inserted_On desc) Slno, Name, Email_ID Email, Mobile_No Mobile, Status, Inserted_On ProfileCreatedOn from RefTable 现在 很好,我得到了预期的序列号。但是当我尝试的时候 select Slno, Name, Email, Mobile, Sta

我有这样的看法

Create view RefStatus
as
select row_number() over(order by Inserted_On desc) Slno, Name,
Email_ID Email, Mobile_No Mobile, Status, Inserted_On ProfileCreatedOn from RefTable
现在

很好,我得到了预期的序列号。但是当我尝试的时候

select  Slno, Name,
 Email,  Mobile, Status,  ProfileCreatedOn from RefStatus where Status = 'In-Progress'
我的序列号没有正确生成。它仍然将我的表的所有记录视为基础,并生成不正确的序列号。 如何仅为筛选的行生成序列号

我知道这可以通过存储过程或为每个状态创建单独的视图来实现。有没有一种方法可以从同样的角度来做呢?原因是我需要使用实体框架和linq从C#调用此视图。

在视图中生成的
行编号()
不是动态的,因为在过滤视图时它不会动态更改

在查询中而不是在视图中使用
ROW\u NUMBER()

select  
    row_number() over(order by Inserted_On desc) SlNo, 
    Name,
    Email,  
    Mobile, 
    Status,  
    ProfileCreatedOn,
from RefStatus
where Status = 'In-Progress'
在视图中生成的
行编号()
不是动态的,因为它在过滤视图时不会动态更改

在查询中而不是在视图中使用
ROW\u NUMBER()

select  
    row_number() over(order by Inserted_On desc) SlNo, 
    Name,
    Email,  
    Mobile, 
    Status,  
    ProfileCreatedOn,
from RefStatus
where Status = 'In-Progress'

最终,我需要使用实体框架linq从C#调用此视图。在C#中可以这样做吗?@PrasanthKumarVinakota:是的,你当然可以从C#运行这个查询。现在我这样称呼它
grvNewRefGrid.DataSource=db.RefStatus.Where(g=>g.Status==str.ToList()我如何在这里生成序列号,我在视图中生成序列号的另一个原因是实体框架需要一个键才能正常工作,我使用此列作为键。最终我需要使用实体框架linq从C#调用此视图。在C#中可以这样做吗?@PrasanthKumarVinakota:是的,你当然可以从C#运行这个查询。现在我这样称呼它
grvNewRefGrid.DataSource=db.RefStatus.Where(g=>g.Status==str.ToList()我如何在这里生成序列号,我在视图中生成序列号的另一个原因是实体框架需要一个键才能正常工作,我使用此列作为键。在
RefTable
table中没有PK吗?不,实际上我没有任何RefTable,我提到它是为了简单,我的实际选择查询是一个很大的查询,有多个内部联接和大约15个表上的左联接。如果要使用此序列号来标识一行,那么这不会有帮助,因为在
列数据上插入的
可能会改变,这意味着
SerialNo
也会改变。不,我不会用该键更新任何内容,实际上,我希望
SlNo
能随着过滤数据的变化而变化,但事实并非如此
SlNo
对行的过滤和未过滤数据保持不变。好吧,那么@Prasanth Kumar Vinakota你已经有了答案。你在
RefTable
table中没有PK吗?不,实际上我没有任何RefTable,我提到它是为了简单,我的实际选择查询是一个很大的查询,有多个内部联接和大约15个表上的左联接。如果要使用此序列号来标识一行,那么这不会有帮助,因为在
列数据上插入的
可能会改变,这意味着
SerialNo
也会改变。不,我不会用该键更新任何内容,实际上,我希望
SlNo
能随着过滤数据的变化而变化,但事实并非如此
SlNo
对行的已过滤和未过滤数据保持不变。好的,那么@Prasanth Kumar Vinakota您已经有了答案。