我收到一个作为字符串输入的实体名称。
ObjectContext objContext = ((IObjectContextAdapter)db).ObjectContext;
MetadataWorkspace workspace = objContext.MetadataWorkspace;
IEnumerable<EntityType> entitytypes = workspace.GetItems<EntityType>(DataSpace.SSpace);
IList<SysTranslationItemDto> lst = new List<SysTranslationItemDto>();
EntityType entityType = entitytypes.Where(x => x.FullName == DbStore + table + "Translation").FirstOrDefault();
我得到了entityType。
现在,我将获得此实体/表的完整内容,因为理论上我也有ReadOnlyMetadataCollection<EdmMember> keyMembers = table.KeyMembers
,应该可以在不使用sql查询的情况下做到这一点?
因此,从理论上讲,我的dbcontext上应该有一些东西,这可以让我按EntityType搜索,然后返回特定的实例。
所以我认为是这样的:var entity = db.Set(entityType.GetType());应该可以,但是这不能在entitytype和system.type之间转换。