LP1*_*P13 6 c# sql-server mongodb
我们正在将一些数据从 MongoDB 传输到 SQL Server。为了在 SQL Server 中存储 mongo 的 objectid,我有一个类型为 的列varbinary(12)。
问题#1:这是在 SQL Server 中存储 mongo 对象的正确方法吗?
另外,当我使用转换 objectid 时
select CONVERT(varbinary(12),'54aedb94e6c12b1c0e83385f')
Run Code Online (Sandbox Code Playgroud)
我回来了0x353461656462393465366331
问题#2:在 C# 中,如何将存储的二进制值转换回字符串十六进制值?
问题 #3:我使用数据库优先的 EF。如何在 SQL Server 表中查询匹配的 objectid(考虑到 Objectid 存储为varbinary)
public vod DoWork(string mongoid)
{
//how do i get client based on `mongoid` parameter which is string?
var result = _dbContext.Clients.SingleOrDefault(x=>x.MongoId == ?????)
}
Run Code Online (Sandbox Code Playgroud)
假设是MongoIdvarbinary 列
由于这个提议将导致存储空间的增加,因此我们将有可能创建多字段索引。
解决方案:添加将存储额外信息的字段(Pid 时间戳增量 Pid)
var o = new ObjectId();
var o1 = o.Timestamp; //int
var o2 = o.Increment; //int
var o3 = o.Machine; //int
var o4 = o.Pid; //short
Run Code Online (Sandbox Code Playgroud)
对于特定的 objsctId 我们可以有:
objectID: 57ce88b4857eda2fe48f042f
Timestamp: 1473153204
Machine: 8748762
Pid: 12260
Increment: 9372719
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2547 次 |
| 最近记录: |