У меня есть два класса Todo
и TodoLog
, для которых я создал отображение, и несколько юнит-тестов для их соответствующих конструкторов.
Когда я запускаю эти тесты, я получаю ошибку Could not load type TodoLog. Possible cause no assembly name specified
с неисключением MappingException: persistent class TodoLog not found
.
Ошибка всегда относится к TodoLog
, даже когда я запускаю тест для конструктора Todo
.
Отображение для обоих классов довольно простое.
Отображение для Todo
:
[Class(NameType = typeof()Todo, Table = "Todo")]
public class Todo
{
[Id(-2, Name = "Id")]
[Generator(-1, Class = "native")]
public virtual long Id { get; set; }
[Property]
public virtual string Title { get; set; }
[Property]
public virtual Guid TodoGuid { get; set; }
private IList<TodoLog> logs = new List<TodoLog>();
[Bag(0, Name = "Logs", Table = "TodoLog", Inverse = true)]
[Key(1, Column = "Todo")]
[OneToMany(2, ClassType = typeof(TodoLog)]
public virtual IEnumerable<TodoLog> Logs
{
get => logs;
protected set => log = (IList<TodoLog>)value;
}
}
Отображение для TodoLog
[Class(NameType = typeof(TodoLog), Name = "TodoLog")]
public class TodoLog
{
[Id(-2, Name = "Id")]
[Generator(-1, Class = "native")]
public virtual long Id { get; set; }
[ManyToOne]
public virtual Todo Todo { get; set; }
[Property]
public virtual Enums.TodoAction Action { get; set; }
[ManyToOne]
public virtual User ExecutedBy { get; set; }
[Property]
public virtual DateTime ExectutedOn { get; set; }
}
======== РЕДАКТИРОВАТЬ ========
Когда я помещаю весь код TodoLog
в комментарии, тесты запускаются нормально, но как только я добавляю Class
-атрибут к TodoLog
, я получаю ту же ошибку, что и раньше. Полное удаление TodoLog
и добавление другого класса TodoTest
приводит к той же ошибке для TodoTest
.
Я также использовал .Net Reflector, чтобы проверить, правильно ли скомпилирован этот класс, но там все выглядит нормально.
При отладке кода при запуске теста возникает ошибка при загрузке сборки, содержащей TodoLog
:
foreach(var a in projectsAssemblies)
{
Configuration.AddInputStream(HbmSerializer.Default.Serialize(a));
}
При просмотре свойства ExportedTypes
сборки, содержащей TodoLog
, класс TodoLog
находится в этом списке.