通过搜索视图实体返回表实体的最佳实践
本文关键字:实体 最佳 返回 搜索 视图 | 更新日期: 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()
。
但另一个问题仍然存在。你的viewUser
和tblUser
是完全一样的吗?
同样,像viewUser
这样的命名类应该是ViewUser
和TblUser