带有Sqlite内存数据库的EF Core用于测试会引发“集合为只读”错误-为什么?

时间:2019-08-27 18:36:26

标签: c# sqlite integration-testing xunit ef-core-2.2

我正在使用sqlite内存数据库编写具有ef核心的集成测试。这是代码:

using

上面的代码引发以下错误

  

收藏集为只读

错误。但是,如果我注释掉第二个using块并取消注释第一个Customer块内的行,则会检索记录并通过测试。

这是我的 public class Customer : BaseEntity<Guid>, IAggregateRoot { private Customer() { // required by EF } public Customer(string name, List<Ride> rides) { Name = name; _rides = rides; } public string Name { get; set; } private readonly List<Ride> _rides = new List<Ride>(); public IReadOnlyCollection<Ride> Rides => _rides.AsReadOnly(); } 班:

{{1}}

我很困惑。谁能解释为什么?

谢谢

SQL Lite Error

1 个答案:

答案 0 :(得分:0)

启用以下配置可解决此问题。

var navigation = builder.Metadata.FindNavigation(nameof(Customer.Rides));
navigation.SetPropertyAccessMode(PropertyAccessMode.Field);

感谢并感谢Ivan Stoev的指导。