我们的数据库中有一个并发检查字段,它是一个SQL时间戳。有没有办法让Linq查询选择一个编码为Base64字符串的时间戳字段?
如果我使用与
@Html.HiddenFor(m => m.DatabaseRowVersion)
剃刀视图它编码为Base64编码字符串,并结合回到我的模型在攒动的罚款。
如果我得到的场由JSON请求与
Json(queryable.Select(f => new { DatabaseRowVersion = f.DatabaseRowVersion }))
然后将得到的JSON是一个8场字节数组,我不能让它绑定回到我在保存动作模型。有什么办法可以让Linq实体在序列化之前选择字段作为Base64字符串?
我的解决方案是一个看起来很脏的JavaScript函数来将8个字段字节数组转换为Base64字符串,但这并不美观,我宁愿原始的Json请求返回已编码的字段。我试过的所有东西都给了我一个不受支持的Linq to Entities函数异常。我不想在内存中执行它,我想找到某种Entities.Functions风格的实现它在SQL服务器上发生。
另一种我不介意这样做的方式是,如果可以让jQuery以某种方式发布保存请求,将8字段字节数组绑定到模型中的字节[],但是我尝试过的所有内容都不会'工作。我已经在帖子中尝试了所有传统:true和contentType:“application/json; charset = utf-8”,但没有像在Ajax帖子中成功绑定数组的其他操作那样成功。它似乎不像其他数组那样工作,因为模型绑定器似乎期望Base64字符串而不是模型上byte []字段的字节数组。