C# 实体框架集合在混淆后为空
我有以下代码:C# 实体框架集合在混淆后为空,c#,.net,entity-framework,obfuscation,dotfuscator,C#,.net,Entity Framework,Obfuscation,Dotfuscator,我有以下代码: [Table("People")] public class Person { [Key] public int PersonId { get; set; } public string Name { get; set; } } public class Employee : Person { public virtual Company WorksForCompany { get; set; } [ForeignKey("Works
[Table("People")]
public class Person
{
[Key]
public int PersonId { get; set; }
public string Name { get; set; }
}
public class Employee : Person
{
public virtual Company WorksForCompany { get; set; }
[ForeignKey("WorksForCompany")]
public int? WorksForCompanyId { get; set; }
}
[Table("Companies")]
public class Company
{
public Company()
{
Employees = new List<Employee>();
}
[Key]
public int CompanyId { get; set; }
[InverseProperty("WorksForCompany")]
public virtual ICollection<Employee> Employees { get; set; }
}
EF日志显示,在测试列表项的数量之前,不会执行填充员工列表的SQL查询。公司的类型是动态代理类,在这两种情况下,员工的类型都是列表
什么东西可能会被打破,以致列表不再填写?我还可以检查什么来找出不同之处?有什么有趣的运行时类型可以看吗?你说的模糊化是什么意思?属性?这些被称为数据注释。顺便问一下,你是不是先做代码?那么表和键注释就没有必要了:按照惯例,EF将使用相同的名称和键。是的,代码优先。属性仅用于指定表名。不确定这里是否需要它们。数据库架构来自较旧的系统。我不使用EF迁移。这可能是个愚蠢的问题,但你是否在同一个数据库上运行模糊版本?是的,我使用。我已经调查过了。应用程序在之前自己编写这些条目。
Assert.AreEqual(4, company.Employees.Count());