加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 实体框架5 MVC 4 – 脚手架错误 – 没有密钥

发布时间:2020-12-15 21:47:18 所属栏目:百科 来源:网络整理
导读:首先,我不得不说我是MVC和EF的新手.我使用 Database First创建了Model,并选择了两个表用户—用户细节(相关) 模型生成正常,它们验证很好,如果我尝试做简单的数据访问,这也很好. 现在当我尝试将它与MVC 4脚手架和选择的新控制器/ EF框架添加/更新/删除等结合起
首先,我不得不说我是MVC和EF的新手.我使用 Database First创建了Model,并选择了两个表用户—>用户细节(相关)

模型生成正常,它们验证很好,如果我尝试做简单的数据访问,这也很好.

现在当我尝试将它与MVC 4脚手架和选择的新控制器/ EF框架添加/更新/删除等结合起来时,我输入User Model UserContext它抱怨自动生成的模型没有密钥.

实体类型 – “用户”没有密钥.所以我打开模型,看到实际上有一个键,它有复选框Entity键,以及该属性旁边的小“关键”符号.

我到处寻找唯一可行的方法是手动打开User.cs并将[Key]属性放在键旁边 – 这对我来说很可怕,因为这个文件显然是自动生成的,我不想要做这对每一把钥匙?难道我做错了什么?

从来没有我离题,现在我已经为User和UserDetails cs文件添加了密钥,它停止抱怨,现在开始抱怨:

无法检索MetaData:for User.无法确定User和UserDetail之间关联的主要结束.必须使用关系流畅API或数据注释显式配置此关联的主要结束.

我现在有两个问题:

>我应该搞乱像这样的自动生成的文件吗?或者我做错了什么?
2 /我如何解决第二个问题?

我觉得有些事情是错的,因为我不应该在这样的问题之后遇到问题吗?

解决方法

我有类似的“无法检索类型的元数据…”错误.假设(如果有)您正确实现了User和UserDetails之间的关系,您可以尝试以下操作,这就是我解决错误的方法:

在您的Web.config文件(根目录,在解决方案资源管理器的最后)更改连接字符串中的名称…

<connectionStrings>
 <add name="YourContext" connectionString="Data Source=|DataDirectory|YourNamespace.Models.YourDBName.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

……对此:

<connectionStrings>
 <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|YourNamespace.Models.YourDBName.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

只需更改名称,别的.然后构建您的解决方案并尝试运行它.可能是一个长镜头,但它对我有用.更多信息来自here,我在那里问了一个类似的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读