在EF努力中加载CSV时,将不可为空的字段默认为默认类型值

时间:2019-05-01 10:53:04

标签: c# entity-framework csv effort

我正在使用CSV加载程序将模拟数据加载到Effort中。一位同事已签入对我们数据库表之一的更改(新的不可为空的列),并且他的gate-check-in失败,因为当我们期望值是0时,Effort试图分配空值。

只需返回并更改CSV文件中的每一行,是否有办法让我们努力将这些不可为空的列填充为其类型的默认值?

Exception message:Effort.Exceptions.EffortException : An unhandled exception occurred while trying to assign value '[null]' to Property 'TaskQueueId' of type 'System.Int32' during entity initialization for table 

1 个答案:

答案 0 :(得分:1)

https://entityframework-effort.net/load-data-from-csv上的示例所示:

IDataLoader loader = new Effort.DataLoaders.CsvDataLoader(@"D:\CsvFiles")

using (NorthwindEntities ctx = Effort.ObjectContextFactory.CreateTransient(loader))
{
    var products = ctx.Products.ToList();
}

在填充对象时可以设置列值。就像我们必须在Product对象上设置一些属性一样:

var products = ctx.Products.ToList();
foreach(var p in products)
{
    p.UnitPrice *=1.2m;
}