实体框架代码第一只读密钥

Sam*_*Sam 10 entity-framework entity-framework-4.1

在EF 4.1 RC1中,我有一个简单的实体,比如说Category,属性ID为int.我可以将它作为只读属性并仍然有效吗?

如果没有,你如何保护PK/FK?

Mat*_*ton 15

一种方法是定义您的ID属性,如下所示:

public int ID { get; internal set; }
Run Code Online (Sandbox Code Playgroud)

...然后在与"类别"类相同的程序集中定义您的DbContext类.它将具有对属性的写访问权限,但程序集外部的类不会.

如果需要在单独的程序集中定义DbContext,可以使用InternalsVisibleTo属性让该程序集看到"Category"类的内部.