Я пытаюсь выполнить первую миграцию нового проекта на EF, но продолжаю получать исключение, которое не имеет смысла.
Я использую отдельные классы конфигурации для каждого своего бизнесаклассы и тот, который получает исключение, это:
public class AlunoAcessaArquivoMapeamento : EntityTypeConfiguration<AlunoAcessaArquivo> {
public AlunoAcessaArquivoMapeamento() {
ToTable(Regex.Replace(typeof(AlunoAcessaArquivo).Name, "([^A-Z])([A-Z])", "$1_$2").ToLower());
HasKey(e => new {e.AlunoId, e.ArquivoId});
HasRequired(a => a.Aluno).WithMany(a => a.AlunosAcessaArquivos).HasForeignKey(a => a.AlunoId);
HasRequired(a => a.Arquivo).WithMany(a => a.AlunosAcessaArquivos).HasForeignKey(a => a.ArquivoId);
}
}
Класс, который он настраивает, это тот, который представляет собой простую таблицу отношений «многие ко многим»:
public class AlunoAcessaArquivo : EntidadeBase {
public virtual Aluno Aluno { get; set; }
public virtual Arquivo Arquivo { get; set; }
public long AlunoId;
public long ArquivoId;
}
Когда я пытаюсь Add-Migration
, я получаю исключение:
System.InvalidOperationException: выражение свойств 'e => new <> f__AnonymousType0`2 (AlunoId = e.AlunoId, ArquivoId = e.ArquivoId) 'недействителен.Выражение должно представлять свойство: C #: 't => t.MyProperty' VB.Net: 'Function (t) t.MyProperty'.При указании нескольких свойств используйте анонимный тип: C #: 't => new {t.MyProperty1, t.MyProperty2}' VB.Net: 'Function (t) New With {t.MyProperty1, t.MyProperty2}'.
Это исключение не имеет никакого смысла.Обратите внимание, что я настраиваю свой первичный ключ во четвертой строке первого примера кода, и он явно следует формату анонимного типа, указанному в исключении, поэтому я застрял с этим.
Замечание: я знаю, что мой код содержитпортугальский текст, который я могу перевести на английский, но только если это строго необходимо.