我正在使用实体框架作为ASP.Net(webforms)应用程序的ORM。假设我的应用程序中有一个“列表/详细信息”页面集,当您单击列表页面中的某一行时,我希望将该行的某种类型的ID传递给详细信息页面,然后我将使用从我的数据层加载行。在我的特定情况下,主键只是一个“rowId”标识列。
然而,EF似乎更喜欢“隐藏”主键/外键,以便您无法访问它们(默认情况下)。
我是EF的新手,我想知道是否有最佳实践来唯一识别实体上下文之外的行。我想我可以在记录中添加一个uniqueidentifier列,并为我的实体模型添加匹配的属性,但有效地为该行提供2个唯一标识符似乎是多余的。有没有更好的方法在表示层上携带标识符?
在我的_ItemDataBound()事件处理程序中,我想我可以做类似的事情:
var announcement = (Announcement) e.Item.DataItem;
string rowID = announcement.EntityKey.EntityKeyValues[0].Value.ToString();
这是推荐的,还是只是反对框架?
提前致谢。
斯科特
答案 0 :(得分:1)
不,你所做的并不是“与(实体)框架相悖”。但这并不是说它无法改进: