Привет, я не буду передавать некоторые данные Syntheti c в мою базу данных с помощью метода InsertMany, я написал текущий код:
My Main
:
static void Main(string[] args)
{
MongoCRUD db = new MongoCRUD("testClass");
List<GlobalUrbanPoint> syntheticData = CreateSunfeticData(20);
db.InsertMultipleRecords<GlobalUrbanPoint>("geo3", syntheticData);
}
Моя модель class:
public class GlobalUrbanPoint
{
[BsonId]
public ObjectId Id{ get; set; }
public string NAME { get; set; }
}
Функция для синтетических c данных:
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);
}
}
Когда я запускаю code Я получаю сообщение об ошибке. E11000 - ошибка дублирования ключа. Я проверяю определение InsertMany, и он принимает аргументы IEnumerable<TDocument> documents
. Это простой способ преобразовать List<T>
в IEnumerable<TDocument>
? Что мне нужно, чтобы изменить мою функцию Syntheti c или функцию InsertMultipleRecords. Есть предложения?
Спасибо за ваше время.