c# - 具有 LINQ 查询的实体框架重复记录
问题描述
使用实体框架 6.0 和 .Net 4.5。使用实体数据模型向导和表数据映射表[Log]
以设置数据连接,如下所示:
时间戳 | 所有者 | 信息 | 温顺的 |
---|---|---|---|
06-11-2020 10:32:49 | 用户 1 | 消息-1 | 100 |
06-11-2020 10:32:49 | 用户 1 | 消息 2 | 100 |
06-11-2020 10:32:50 | 行政人员 | 100 | |
06-11-2020 10:32:50 | 行政人员 | 100 | |
06-11-2020 10:32:49 | 用户 1 | 消息 3 | 100 |
当我在 SQL Server Management Studio 中运行查询时,它会返回正确的结果:
SELECT *
FROM [dbo].[Log]
WHERE docid = 100
但是,当我使用以下查询在源代码中使用实体框架进行查询时,它会重复具有相同时间戳的行:
var logEntries = (
from logEty in context.Log
where logEty.docid == 100
orderby logEty.timestamp
select logEty
)
.ToList();
foreach (var entry in logEntries)
{
message = entry.message;
Console.WriteLine(message);
message = string.Empty;
}
输出:
message-1
message-1
message-1
我的问题是为什么我在结果中得到重复的记录。即使我删除了 sort by 语句。任何人都可以提出解决方案,这个问题的根本原因是什么?
注意:我在表结构中没有任何主键或任何类型的约束。
问候, 苏雷什考希克
解决方案
推荐阅读
- corda - 在 R3 Corda 中托管的节点数据库中创建表
- python - 在 Pandas 中分组 + 聚合 + 计数
- python - 分段错误运行layers.conv2d
- javascript - IE11 Date.prototype.toLocaleTimeString 选项 timeZoneName 支持?
- angular - WebStorm未知的HTML标签Angular 2
- python - 将包含字典的列表字典转换为数据框
- docker - 如何从托管在不同服务器上的 docker 容器连接 sql server?
- python - 递归附加到列表的问题
- r - ggplot2 中的 scale_color_brewer 为分类颜色分配不同的顺序
- sql - 创建日期字段的开始日期和结束日期