一个成功配置好的EntityFramework 您的项目引用了最新版实体框架,EntityFramework.Extensions Delete Update 发生一个或多个错误
张静茹2016/04/29软件综合 IP:江苏
无标题.png




请确保已经安装下列软件最新版
mysql-connector-net
mysql-for-visualstudio



如果你出现了上述问题
重新生成当前解决方案
如果还是有问题 请执行
Install-Package MySql.Data.Entity
Install-Package EntityFramework.Extended

如果还是有问题,请将为了entity在visual studio中安装的扩展 全部删掉然后执行
Install-Package EntityFramework
Install-Package MySql.Data.Entity
Install-Package EntityFramework.Extended

如果还是有问题 请新建一个全新工程
执行:
Install-Package EntityFramework
Install-Package MySql.Data.Entity
Install-Package EntityFramework.Extended

dll.png


XXXXXXnfig
<providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="XXXXXXXXXXXXXSqlClient" type="XXXXXXXXXXXXXXXXXXXXXXXXXSqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="XXXXXXXXXXXXXSqlClient" />
      <add name="MySQL Data Provider" invariant="XXXXXXXXXXXXXSqlClient" description=".Net Framework Data Provider for MySQL" type="XXXXXXXXXXXXXXXXXXXXXXXXXSqlClientFactory, MySql.Data, Version=6.9.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <add name="mysqldbEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/XXXXXXXXXl;provider=XXXXXXXXXXXXXSqlClient;provider connection string="server=127.0.0.1;user id=root;password=jingru;persistsecurityinfo=True;database=mysqldb"" providerName="System.Data.EntityClient" />
    <add name="mysqldbEntities1" connectionString="metadata=res://*/TableModel.csdl|res://*/TableModel.ssdl|res://*/XXXXXXXXXXXXXl;provider=XXXXXXXXXXXXXSqlClient;provider connection string="server=127.0.0.1;user id=root;password=jingru;persistsecurityinfo=True;database=mysqldb"" providerName="System.Data.EntityClient" />
  </connectionStrings>


“TableDetails”中列“IsPrimaryKey”的值为DBNull.




Entity Framework连接MySQL时:由于出现以下异常,无法生成模型:“表“TableDetails”中列“IsPrimaryKey”的值为DBNull.
解决方案:
Execute the following commands in MySQL.
   use <<database name>>; set global optimizer_switch='derived_merge=OFF';
如果还不能用 好像是表里的东西建错了 请仔细检查,我删掉了原来的表 重新建了个简单的表就好了




如果你没有Delete Update 这些扩展方法 请安装EntityFramework.Extended 执行: Install-Package EntityFramework.Extended


如果你的 EntityFramework.Extensions  Delete Update 发生一个或多个错误 听说原因是因为默认生成的是 mssql语句 mysql不支持
原帖:XXXXXXXXXXXXXXXXXXXXXX/jerron/p/XXXXXXXXXXml
发生一个或多个错误.png

解决方法 :




<code class="lang-c">public partial class CL1000Entities : DbContext
{
    public CL1000Entities()
        : base("name=CL1000Entities")
    {
            
    }
            
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.HasDefaultSchema(""); //添加
        base.OnModelCreating(modelBuilder);//添加
    }
            
    public virtual DbSet<test> test { get; set; }
}
           
           
        static void Main()
        {
            EntityFramework.Container container = new EntityFramework.Container();//添加
            EntityFramework.Locator.RegisterDefaults(container);//添加
            container.Register<entityframework.batch.ibatchrunner>(() => new EntityFramework.Batch.MySqlBatchRunner());//添加
            EntityFramework.Locator.SetContainer(container);//添加
           
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }</entityframework.batch.ibatchrunner></test></code>


如果出现 基础提供程序在 Open 上失败。可能是你在新建模型的时候选择了 否,从链接字符串中排除敏感数据,我将在应用程序代码中设置此数据
设置方法 打开 XXXXXXnfig
<code class="lang-xml"><connectionstrings>
  <add name="CL1000Entities" connectionstring="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string=" server="localhost;user" id="root;password=xxxx;persistsecurityinfo=True;database=CL1000""" providername="System.Data.EntityClient">
</add></connectionstrings></code>
在id后面输入 password=xxxx;
或者在你所建立的模型的构造函数中传入 密码


public CL1000Entities()            : base("name=CL1000Entities")        {            base.Database.Connection.ConnectionString = "server=localhost;user id=root;password=xxxxxxxx;persistsecurityinfo=True;database=CL1000";        }

更新条目时出错.有关信息请参阅内部异常
这个应该是 你手动修改过数据库字段的类型,需要手动更新你建立的模型文件 打开*.edmx ,空白区域右键->从数据库更新模型

也有可能是 有唯一属性的字段重复了



unable to load the specified metadata resource

[修改于 8年8个月前 - 2016/05/01 15:42:33]

来自:计算机科学 / 软件综合
6
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
张静茹 作者
8年8个月前 IP:江苏
817946
历经坎坷,entity终于算是能用了,太不容易了,不是亲儿子 果然不省心!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年8个月前 IP:江苏
818093
<code class="lang-c">catch (System.Data.Entity.Validation.DbEntityValidationException ex)
                    {
                        foreach (System.Data.Entity.Validation.DbEntityValidationResult Item in ex.EntityValidationErrors)
                        {
                            foreach (var ValidationErrorsItem in Item.ValidationErrors)
                            {
                                Console.WriteLine(string.Format("PropertyName = {0},ErrorMessage = {1}", ValidationErrorsItem.PropertyName, ValidationErrorsItem.ErrorMessage));
                            }
                        }
                    }</code>
得到错误信息
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年7个月前 IP:江苏
819602
The XXXXXXT provider with invariant name 'XXXXXXXXXXXXXSqlClient' is either not registered in the machine or application config file, or could not be loaded. See the inner exception for details.


需要安装MySql连接器mysql-connector-net-6.9.8 .msi
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年6个月前 IP:江苏
822091
No connection string named 'CL1000Entities' could be found in the application config file。
检查
XXXXXXXXXXXXnfig
XXXXXXXXXXXXXnifest
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
8年6个月前 IP:江苏
822126
总而言之,这东西 挺难用的,开发倒是容易一些,但是很容易出问题,而且效率低,优化难,老老实实用 sql脚本吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
acmilan
8年5个月前 IP:四川
822618
.NET连接数据库也就SQL Server比较好用了。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
张静茹
进士 学者 机友 笔友
文章
139
回复
1869
学术分
1
2010/12/30注册,1个月23天前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}