我正在尝试使用GetObjectByKey函数获取记录,如下所示:
Enumerable<KeyValuePair<string, object>> entityKeyValues =
new KeyValuePair<string, object>[] {
new KeyValuePair<string, object>("JournalId",
new Guid("6491305f-91d9-4002-8c47-8ad1a870cb11")) };
EntityKey key = new System.Data.EntityKey(string.Format("{0}.{1}", ObjectContextManager.Current.DefaultContainerName, "Journal"), entityKeyValues);
但是我得到了这个例外
System.ArgumentException:提供的键值对列表 包含的条目数不正确。有54个关键领域 在'Namespace.Journal'类型上定义,但提供了1。参数 name:key
Journal是一种观点。
我怎么能只使用一个字段来使用该函数,我需要的原因是因为我不想指定泛型类型,只需要从给定的实体集名称中获取它。
提前致谢
答案 0 :(得分:1)
在数据库中查看没有密钥,但EF需要密钥,因此当您将视图插入模型时,EF将采用所有不可为空的非二进制列并将其定义为密钥 - 此时您的密钥包含54列。解决方案是手动修改EDMX文件(作为XML),但使用默认的EDMX设计器,您的更改将在每次从数据库更新后删除。