c# – 如何将mongo ObjectID存储到SQL Server中?

我们正在将一些数据从MongoDB传输到sql Server.为了在sql Server中存储mongo的objectid,我有一个varbinary类型的列(12).

问题1:这是在sql Server中存储mongo的正确方法吗?

当我转换objectid使用时

select CONVERT(varbinary(12),'54aedb94e6c12b1c0e83385f')

我回来了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 == ?????)
   }

假设MongoId是varbinary列

解决方法

因为这个命题会导致存储空间增加,作为结果,我们将有可能创建多场指数.

解:
添加将存储额外信息的字段(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

对于特定的目标,我们可以:

objectID: 57ce88b4857eda2fe48f042f 
Timestamp: 1473153204 
Machine: 8748762 
Pid: 12260 
Increment: 9372719

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...