2011-03-17 62 views
9

在EF 4.1 RC1中,我有一个简单的实体,如说Category,具有属性ID int。我可以让它成为只读属性并且仍然有效吗?实体框架代码首先只读密钥

如果不是,你如何保护PK/FK?

回答

14

一种方法是这样定义你的ID属性:

public int ID { get; internal set; } 

...然后在相同的组件定义你的DbContext类为“类”级。它将拥有对该属性的写入权限,但程序集外部的类不会。

如果您需要在单独的程序集中定义DbContext,则可以使用InternalsVisibleTo属性让该程序集查看“Category”类的内部部分。