实体框架,POCO和私有财产

use*_*769 8 c# entity-framework poco

我创建了以下POCO类也取得了Contact.FirstNameContact.LastName私有属性(这些属性被映射到实体框架模型,相应的属性).

public class Contact
{
    public int ContactID { get; set; }
    private string FirstName { get; set; }
    public string LastName { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

我期望得到一个例外,因为EF无法为这两个属性赋值,但不知何故EF仍设法为它们赋值.这怎么可能,因为只有Contact类中的代码才能访问私有属性?

谢谢

Ken*_*art 16

在具有足够信任级别的环境中,可以使用反射来访问通常无法访问的成员.

  • @dbaseman:是的,但是还有一个`InternalsVisibleAttribute`,它有时被测试中的代码用来使其`internal`成员可以访问单元测试,而根本不需要反射. (2认同)