使用Fluent Nhibernate c#将CSV/Excel文件数据导入2个表(sql server 2012)

本文关键字:2个表 导入 sql server 2012 数据 文件 Nhibernate Fluent CSV Excel | 更新日期: 2023-09-27 17:58:33

嗨,
我有一个csv/excel文件,希望使用C#Fluent Nhibernate存储库模式将excel.csv文件中的数据插入到我的sql server数据库的两个表中。

我的两张桌子是:

table1 (Id, FieldName)
table2 (Id, table1Id, Name, ...)

表1的主键在表2中充当外键。

在这两个表中插入的全部数据都可以在一个excel/csv文件中获得。那么,是否可以使用C#Fluent Nhibernate来完成此过程?如果是,有谁能给我一个主意?

谢谢,采样路径

使用Fluent Nhibernate c#将CSV/Excel文件数据导入2个表(sql server 2012)

是的,这肯定是可能的。下面是一个关于如何做到这一点的非常简单的例子。

伪代码:

实体

class table1
{
    int id;
    List<table2> table2s;
}
class table2
{
    int id;
    table1 instance;
    string name;
}

映射

public class table1Map: ClassMap<table1>
{
  public table1Map()
  {
    Table("table1");
    Id(x => x.Id);
    HasMany(x => x.table2s).Cascade.All();
  }
}
public class table2Map: ClassMap<table2>
{
  public table2Map()
  {
    Table("table2");
    Id(x => x.Id);
    References(x => x.instance);
  }
}

用法

using (var session = new  Configuration().Configure().BuildSessionFactory().OpenSession())  
{  
    table1 t1 = new table1();
    t1.table2s.Add(new table2());
    using (ITransaction transaction = session.BeginTransaction())  
    {  
        session.Save(t1);
        transaction.Commit();  
    }  
}