C# MVC开发中在使用ADO.NET数据模型时出现的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# MVC开发中在使用ADO.NET数据模型时出现的问题相关的知识,希望对你有一定的参考价值。
Exception Details: System.InvalidOperationException: The type 'User' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute.
Model.edmx中有一个"Code Generation Strategy"的属性,将其设置为default时会出现以上问题,将其设置为None时,会出现以下的异常:
Message 4 The table/view 'OnlineShop.dbo.LineItem' does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view. E:\Project\DotNet\WebSite1\App_Code\Model.edmx 0 1 WebSite1(1)
Code Generation Strategy指的是如何处理你的数据模型,设置为None是啥都不做,不会自动生成任何数据类,自然就会出错了。 参考技术A 你已经有了一个User的实体类,现在又要自动生成,所以报错了追问
可是不自动生成的话在引入命名空间时报错啊
追答把原有的User实体类给删掉再生成
.net core mvc + mysql dbfirst 生成 ado.net 数据模型
1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 安装一下包
Install-Package MySql.Data.EntityFrameworkCore -Pre Install-Package Pomelo.EntityFrameworkCore.MySql Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design
2.在程序包包管理器控制台 执行 命令
Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -Force 或者 Scaffold-DbContext "server=.;userid=tech5_kj;pwd=xxx;port=3306;database=tech5_kj;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -UseDatabaseNames -Force
参数说明:
-OutputDir *** 实体文件所存放的文件目录 -ContextDir *** DbContext文件存放的目录 -Context *** DbContext文件名 -Schemas *** 需要生成实体数据的数据表所在的模式 -Tables *** 需要生成实体数据的数据表的集合 -DataAnnotations -UseDatabaseNames 直接使用数据库中的表名和列名(某些版本不支持) -Force 强制执行,重写已经存在的实体文件
生成 的 实体类有命名方式和 数据表名大写小 不一致 从 ef 6 迁移的时候改了不少
参考:http://www.cnblogs.com/yangjinwang/p/9516988.html
以上是关于C# MVC开发中在使用ADO.NET数据模型时出现的问题的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 项目中 ADO.NET 实体模型的已打开 DataReader
将 DbDataReader 的结果转换为 ASP.NET MVC 4 中的数据库模型,来自使用 ADO.NET 的存储过程 [重复]
.net core mvc + mysql dbfirst 生成 ado.net 数据模型
ASP.NET MVC 选中ADO.NET 实体数据模型后 点击添加就跳出以下图片,求大神帮帮忙!!!谢谢