C# 如何在实体框架中唯一标识实体?
我正在使用实体框架作为ASP.Net(webforms)应用程序的ORM。假设我的应用程序中有一组“列表/详细信息”页面,当您单击列表页面中的一行时,我希望将该行的某种类型的ID传递给详细信息页面,然后使用该页面从数据层加载该行。在我的特定情况下,主键只是一个“rowId”标识列 然而,EF似乎更喜欢“隐藏”主键/外键,这样您就无法访问它们(默认情况下) 我是EF的新手,我想知道是否有在实体上下文之外唯一标识行的最佳实践。我想我可以在我的记录中添加一个uniqueidentifier列,在我的实体模型中添加一个匹配的属性,但是为行添加两个唯一标识符似乎是多余的。是否有更好的方法在表示层实现标识符 在我的_ItemDataBound()事件处理程序中,我认为我可以执行以下操作:C# 如何在实体框架中唯一标识实体?,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我正在使用实体框架作为ASP.Net(webforms)应用程序的ORM。假设我的应用程序中有一组“列表/详细信息”页面,当您单击列表页面中的一行时,我希望将该行的某种类型的ID传递给详细信息页面,然后使用该页面从数据层加载该行。在我的特定情况下,主键只是一个“rowId”标识列 然而,EF似乎更喜欢“隐藏”主键/外键,这样您就无法访问它们(默认情况下) 我是EF的新手,我想知道是否有在实体上下文之外唯一标识行的最佳实践。我想我可以在我的记录中添加一个uniqueidentifier列,在我的实
var announcement = (Announcement) e.Item.DataItem;
string rowID = announcement.EntityKey.EntityKeyValues[0].Value.ToString();
这是建议的,还是仅仅针对框架工作
提前谢谢
Scott不,您所做的不是“针对(实体)框架工作”。这并不是说它无法改进,但是:
实现存储库模式实际上将是我的下一次重构:)我不确定我从哪里得到的印象是.RowID属性对我不可用。。。在这种情况下,这对我来说很好。关于#3的观点很好。。。我是EF的新手,我知道我应该和不应该用它做什么。