【发布时间】:2020-10-07 12:49:22
【问题描述】:
您好,我不会使用 InsertMany 方法将一些合成数据传递到我的数据库,我已经编写了流动代码:
我的Main:
static void Main(string[] args)
{
MongoCRUD db = new MongoCRUD("testClass");
List<GlobalUrbanPoint> syntheticData = CreateSunfeticData(20);
db.InsertMultipleRecords<GlobalUrbanPoint>("geo3", syntheticData);
}
我的模型课:
public class GlobalUrbanPoint
{
[BsonId]
public ObjectId Id{ get; set; }
public string NAME { get; set; }
}
合成数据的功能:
public static List<GlobalUrbanPoint> CreateSunfeticData(int NumberOfDocumet)
{
List<GlobalUrbanPoint> SyntheticList = new List<GlobalUrbanPoint>();
var SyntheticObject = new GlobalUrbanPoint();
for (var i = 1; i < NumberOfDocumet; i++)
{
SyntheticObject.NAME = (i+1).ToString();
SyntheticList.Add(SyntheticObject);
}
return SyntheticList;
}
对于我的操作,我使用 MongoCRUD
public class MongoCRUD
{
private IMongoDatabase db;
public MongoCRUD(string database)
{
var client = new MongoClient();
db = client.GetDatabase(database);
}
public void InsertRecord<T>(string table, T record)
{
var collection = db.GetCollection<T>(table);
collection.InsertOne(record);
}
public void InsertMultipleRecords<T>(string table, List<T> records)
{
var collection = db.GetCollection<T>(table);
collection.InsertMany(records);
}
}
当我运行代码时,我收到一个错误 E11000 重复密钥错误集合。我检查了 InsertMany 的定义,它需要参数IEnumerable<TDocument> documents。将List<T> 转换为IEnumerable<TDocument> 是一种简单的方法吗?
我需要更改我的合成函数或 InsertMultipleRecords 函数。有什么建议吗?
感谢您的宝贵时间。
【问题讨论】:
标签: c# mongodb mongodb-query ienumerable