我有一个包含所有产品的CSV文件,我在新类中有一个方法将它们转换为C#Product对象,这些对象存储在IEnumerable类型的变量中:
public class ReadCSVFile
{
public List<Product> ProductsList;
public ReadCSVFile()
{
var path = @"/Content/TrendyDinersLimited_Self_ProductUpdateTemplate.csv";
var CSVProducts = from line in File.ReadAllLines(path).Skip(1)
let columns = line.Split(',')
select new Product
{
Id = int.Parse(columns[0]),
Name = columns[1],
Price = int.Parse(columns[4])
};
}
}
我的问题是,既然我有CSV文件中的产品列表,我应该如何将它们填充到我的数据库中(作为一次性导入)?通常,管理员首先创建一个类别,然后单击一个类别来添加产品。
我在Visual Studio中使用ASP.NET MVC模板,我有三个主要控制器:HomeController(显示类别和产品),CategoryController(管理员授权),ProductController(管理员授权)。我还使用直接连接字符串到Microsoft SQL Server。
答案 0 :(得分:3)
就个人而言,我会使用Dapper.Net来做这样简单的事情。
如果使用Dapper.Contrib(https://www.nuget.org/packages/Dapper.Contrib/) 您可以使用表格和关键属性来装饰您的课程,以使自己的生活更轻松
class PaymentAdmin(VersionAdmin, admin.ModelAdmin):
def change_view(self, request, object_id, extra_context=None):
return HttpResponseRedirect('/admin/sales/invoice')
然后你可以像这样插入
[Table ("Products")]
public class Product
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
}
答案 1 :(得分:2)
你有两个选择。如果要将代码编写为一次性导入实用程序,则可以直接连接到SQL Server以插入数据。
30 days
的示例
但是如果你想要更易于维护的东西,你可以使用EF6作为你的ORM层。 请阅读这篇解释如何get started with EF6 and existing database
的文章