2017-08-22 63 views
1

我是EntityFramework核心的新手。將DBSet集合插入Mongodb作爲bson文檔

我有一個DBContext類,它有所有的DBSet對象。我想將所有對象序列化到MongoDB數據庫。是否可以將DBSet對象寫入mongodb而不將它們轉換爲List對象。

using System; 
using Microsoft.EntityFrameworkCore; 
using Microsoft.EntityFrameworkCore.Metadata; 

namespace Zeiss.IMT.MCCNeo.DataMigration.Utilities 
{ 
    public partial class mccdbContext : DbContext 
    { 
     public virtual DbSet<AliveInfo> AliveInfo { get; set; } 

     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
     { 

      optionsBuilder.UseSqlServer(@"Server=INBLRN0517\SQLEXPRESS;Database=mccdb;Trusted_Connection=True;"); 
     } 

     protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<AliveInfo>(entity => 
      { 
       entity.ToTable("ALIVE_INFO"); 

       entity.HasIndex(e => new { e.KmgId, e.System }) 
        .HasName("UQ__ALIVE_IN__130B8EFC0D03FCC7") 
        .IsUnique(); 

       entity.Property(e => e.Id) 
        .HasColumnName("ID") 
        .ValueGeneratedNever(); 

       entity.Property(e => e.BdeEnabled).HasColumnName("BDE_ENABLED"); 

       entity.Property(e => e.FirstMsg).HasColumnName("FIRST_MSG"); 

       entity.Property(e => e.KmgId) 
        .IsRequired() 
        .HasColumnName("KMG_ID") 
        .HasColumnType("varchar(20)"); 

       entity.Property(e => e.LastMsg).HasColumnName("LAST_MSG"); 

       entity.Property(e => e.MessproEnabled).HasColumnName("MESSPRO_ENABLED"); 

       entity.Property(e => e.ObdEnabled).HasColumnName("OBD_ENABLED"); 

       entity.Property(e => e.System) 
        .IsRequired() 
        .HasColumnName("SYSTEM") 
        .HasColumnType("varchar(100)"); 
      }); 
    } 
} 

目前我正在使用這種方法。我想做一個批量插入到mongodb表ALIVE INFO中的所有記錄。

class Program 
    { 
     static void Main(string[] args) 
     { 
      using (var mccdbContext = new mccdbContext()) 
      { 
       var aliveInfoList = mccdbContext.AliveInfo.ToList(); 

       //converted list is written to mongodb. 
      } 

      Console.ReadKey(); 
     } 
    } 

回答

相關問題