我想只选择字符串eventTriggers
中包含字段“1”的记录(看起来像这样:“00100010”)
我已经尝试并成功完成了超过1次调用..但我怀疑它的效率。基本上我会想要这样的东西...但显然LINQ不支持这个
(LINQ to Entities does not recognize the method 'Char get_Chars(Int32)' method, and this method cannot be translated into a store expression.
)
using (var service = new dB.Business.Service.BaseBusinessService<memo>())
{
List<memo> result = service.Repository.GetQuery().Where(p => p.ID == ID && p.eventTriggers[index] == '1').ToList();
}
任何有关正确解决方案的提示?谢谢 !
答案 0 :(得分:1)
EF无法将char数组操作转换为有效查询。 <怎么样
IEnumerable<Memo> memos
using (var service = new dB.Business.Service.BaseBusinessService<Memo>())
{
memos = service.Repository.GetQuery()
.Where(p => p.ID == ID).AsEnumerable();
}
var result = memos.Where(m => m.eventTriggers[index] == '1').ToList();
这会在本地获取具有匹配ID的所有备忘录,然后在eventTriggers数组上进行过滤。
或者你可以将eventTriggers转换为数值并使用位掩码,这可能是一个更快的查询。
Linq看起来像这样,
using (var service = new dB.Business.Service.BaseBusinessService<Memo>())
{
result = service.Repository.GetQuery()
.Where(p =>
p.ID == ID
&&
m.eventTriggers & mask != 0).ToList();
}
答案 1 :(得分:1)
我有同样的问题并用子串解决了它。
ervice.Repository.GetQuery().Where(p => p.ID == ID && p.eventTriggers.Substring(index,1) == "1").ToList();
答案 2 :(得分:0)
已解决:
//when user pick an image from local storage
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel) {
console.log('User cancelled photo picker');
}
else if (response.error) {
console.log('ImagePicker Error: '+response.error);
}
else if (response.customButton) {
console.log('User tapped custom button: '+response.customButton);
}
else {
firebase.storage().ref().child('myimg.jpg')
.put(response.uri, { contentType : 'image/jpeg' }) //--> here just pass a uri
.then((snapshot) => {
console.log(JSON.stringify(snapshot.metadata));
})
});
}