1
我有一个成功的查询,它从一个连接表中返回多个记录,并且还生成一个bool Selected值(如果另一个表中的当前用户存在一条记录)。从另一个表中选择一个bool列
public IEnumerable<BrowseVendorModel> SearchVendors(CustomSearchModel criteria)
{
var query = _db.VendorProfiles
.Include("VendorCategories")
.Include("VendorsSelected")
.Select(s => new BrowseVendorModel
{
ProfileID = s.ProfileID,
Name = s.Name,
CompanyName = s.CompanyName,
City = s.City,
State = s.State,
DateCreated = s.DateCreated,
// gets bool for selected vendors for current user
Selected = s.VendorsSelected.Select(vs => vs.UserName).Contains(HttpContext.Current.User.Identity.Name),
VendorsSelected = s.VendorsSelected,
VendorCategories = s.VendorCategories
})
.OrderBy(x => x.DateCreated);
return query;
}
我想写另一查询retreives一行还需要获得布尔值选择不突出成果转化为类似上面的类。这是我未能接近的失败尝试。
public VendorProfile GetVendor(String id)
{
Guid pid = Guid.Parse(id);
var viewModel = _db.VendorProfiles
.Include("VendorCategories.ProductServiceCategory")
.Include("VendorsSelected")
.Select(s => new {
VendorProfiles = s,
Selected = s.VendorsSelected.Select(vs => vs.UserName).Contains(HttpContext.Current.User.Identity.Name)
})
.Where(s => s.VendorProfiles.ProfileID == pid);
return viewModel;
}
这个布尔列我想如果产生空(没有记录匹配)和真如果找到记录会是假的。看到这个link如果你需要一个可视化模型
那么什么是不工作在第二个查询? – abatishchev 2013-03-27 23:43:16
@abatishchev这只是不正确的方式来编写查询,我不知道如何处理它。也许我必须把它投影到一个自定义的viewmodel中才能使用它,但是希望不要。 – SQLGrinder 2013-03-27 23:49:42
请详细说明。 – abatishchev 2013-03-28 00:05:06