【发布时间】:2020-01-24 00:42:22
【问题描述】:
根据这篇文章:https://docs.microsoft.com/en-us/ef/core/miscellaneous/testing/sqlite,我正在尝试使用 Sqlite 提供程序进行测试。 (在内存中工作正常)。我的专栏之一是时间戳专栏:
[Timestamp]
public byte[] Timestamp { get; set; }
在使用 options.UseSqlServer() 时效果很好。但是,当我使用此配置运行测试时:
_connection = new SqliteConnection("DataSource=:memory:");
_connection.Open();
_options = new DbContextOptionsBuilder<BuyGroupDataContext>()
.UseSqlite(_connection)
.Options;
...
var bg = GenerateGroup();
bg.Timestamp = Encoding.ASCII.GetBytes(DateTime.Now.ToString());
using (var context = new GroupDataContext(_options))
{
context.Groups.Add(bg);
context.SaveChanges(); // fails here
}
错误:
Microsoft.EntityFrameworkCore.DbUpdateException:发生错误 在更新条目时。有关详细信息,请参阅内部异常。 ---- Microsoft.Data.Sqlite.SqliteException:SQLite 错误 19:'NOT NULL 约束失败:Group.Timestamp'。
【问题讨论】:
-
sql中
Group.Timestamp是什么数据类型?调试并检查是否有值。Not Null引发异常。 -
(时间戳,非空)
标签: c# .net entity-framework