Simple.Data与InMemoryAdapter不同

时间:2013-01-22 22:48:31

标签: simple.data

我正在使用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>();

1 个答案:

答案 0 :(得分:0)

我认为第二种格式是正确的,我有类似的问题。而不是使用演员作为
ToScalarList<string>()尝试创建一个虚拟类型,例如。 “Region”,其字符串属性的名称为RegionName,并强制转换为:ToList<Region>()