1

我正在使用 CSV 加载器将模拟数据加载到 Effort 中。一位同事签入了对我们的一个数据库表(一个新的不可为空的列)的更改,但他的门控签入失败了,因为 Effort 在我们期望值为 0 时试图分配一个空值。

除了返回并更改 CSV 文件中的每一行,我们有没有办法让 Effort 填充这些不可为空的列默认为其类型的默认值?

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 
4

1 回答 1

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;
}
于 2019-05-01T22:45:38.860 回答