所以我有这个实体框架查询,其中我可以在sql server SELECT
中复制和运行的ctx.MainOrders
语句返回2个非常不同的记录。
然而,当我使用.AsEnumerable()
和.Select(z => new MainOrder()
运行此LINQ查询时,我得到两次EXACT SAME记录! :/
这个类是POCO
public class MainOrder
这是我的查询
public List<MainOrder> GetMainOrder(string hashString)
{
try
{
using (var ctx = new ClearContext())
{
var query = ctx.MainOrders
.Where(z => z.MainId == queryHashMain)
.AsEnumerable()
.Select(z => new MainOrder()
{
Email = z.Email,
AuthorizationFirstName = z.AuthorizationFirstName,
AuthorizationLastName = z.AuthorizationLastName,
Btn = z.Btn,
AccountNumber = z.AccountNumber,
UtilityTypeName = z.UtilityTypeName
}).ToList();
return query;
return new List<MainOrder>();
}
}
答案 0 :(得分:0)
在你的评论中你提到了一个视图,这是我打赌的问题。
ctx.Mainorders查询将在sql server中显示2条记录,因为它是一个View in MainId
为方法
添加方法AsNoTracking
var query = ctx.MainOrders.AsNoTracking()