通过搜索视图实体返回表实体的最佳实践

本文关键字:实体 最佳 返回 搜索 视图 | 更新日期: 2023-09-27 18:16:13

我目前有一个数据库,它使用视图来平面化来自多个连接的数据,并作为一个只读接口呈现给网页。这些视图基本上是基于单个实体表的。

例如,我有一个表tblUser和一个视图viewUser。视图显然是来自表和其他一些查找表的数据。现在我有一些情况,我想更新/检索一个tblUser实体,但基于一些扩展字段从视图,如域,用户状态和类型。

所以我的问题是,根据仅在视图中可用的搜索条件检查和检索表实体的最佳方法是什么?目前我是这样做的:

    viewUser view = context.viewUsers.SingleOrDefault(a => a.Logon == 'test' && a.Domain == 'test' && !a.Deleted);
    tblUser user = (view != null) ? context.tblUsers.Single(a => a.ID == view.ID) : new tblUser();

这似乎有点低效,所以我想知道是否有更好的方法来解决这个问题,因为我的搜索并没有真正揭示任何类似于我确切的问题。

通过搜索视图实体返回表实体的最佳实践

似乎是对的。为了性能,我会将.SingleOrDefault().Single()更改为.FirstOrDefault().First()

但另一个问题仍然存在。你的viewUsertblUser是完全一样的吗?
同样,像viewUser这样的命名类应该是ViewUserTblUser