我正在使用Simple.Data及其InMemoryAdapter来编写一些测试。下面的代码来自我的一个测试。测试应该导致返回 1 个值"亚特兰大",但是我得到了两次亚特兰大。我想知道我是否错误地使用了 InMemoryAdapter of Distinct?
var adapter = new InMemoryAdapter();
Database.UseMockAdapter(adapter);
var db = Database.Open();
db.ParentRegionList.Insert(Id: 1, RegionName: "Dublin");
db.ParentRegionList.Insert(Id: 2, RegionName: "Atlanta");
db.ParentRegionList.Insert(Id: 3, RegionName: "Atlanta");
db.ParentRegionList.Insert(Id: 4, RegionName: "Killarney");
db.ParentRegionList.Insert(Id: 5, RegionName: "Bournemouth");
var result = db.ParentRegionList.All()
.Where(db.ParentRegionList.RegionName.Like("At%"))
.Distinct()
.Select(db.ParentRegionList.RegionName).Take(10)
.ToScalarList<string>();
我也试过:
var result = db.ParentRegionList.All()
.Where(db.ParentRegionList.RegionName.Like("At%"))
.Select(db.ParentRegionList.RegionName.Distinct()).Take(10)
.ToScalarList<string>();
我认为第二种格式是正确的,我也有类似的问题。而不是使用强制转换作为
ToScalarList<string>()
尝试创建一个虚拟类型,例如。具有名称为"RegionName"的字符串属性并强制转换为:ToList<Region>()
的"Region"