LINQ到SQL查询返回重复项
本文关键字:返回 查询 SQL LINQ | 更新日期: 2023-09-27 18:13:04
我有一个保费表,我试图使用以下LINQ-to-SQL查询:
var premiums = sourcePolicyContext.Premiums.Where(prm => prm.Policy_Number == "07748106");
对数据库运行以下SQL:
exec sp_executesql N'SELECT [t0].[Policy Number] AS [Policy_Number], ' +
'[t0].[PremiiumType] AS [Premiium_Type], [t0].[Number], ' +
'[t0].[Effective Date] AS [Effective_Date], ' +
'[t0].[Entry Date] AS [Entry_Date], ' +
'[t0].[Collision Premium] AS [Collision_Premium], ' +
'[t0].[Non Collision Premium] AS [Non_Collision_Premium], ' +
'[t0].[Tow Premium] AS [Tow_Premium], ' +
'[t0].[Other Coverage1 Premium] AS [Other_Coverage1_Premium] ' +
'FROM [dbo].[Premium Table] AS [t0]' +
'WHERE [t0].[Policy Number] = @p0',
N'@p0 nvarchar(4000)',
@p0=N'07748106'
如预期的那样,当直接运行时,该查询返回两行。它还会产生两个LINQ to SQL实体,但是这两个实体中的数据只是SQL查询结果中第一行的副本。为什么会发生这种情况?
不确定这是否有帮助,但如果您还没有,请尝试为表提供专用的唯一标识列并将其设置为主键。确保您的LINQ-TO-SQL定义知道主键列。