我用的是EF连接MySQL数据库,遇到以下问题,请大神指教!
(1).edmx已经建好了,如图
(2)edmx的实体类及数据上下文也成功生成:
【Data.Context.cs 中的代码】
namespace MysqlTry
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class DataEntities : DbContext
{
public DataEntities()
: base("name=DataEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<s_sa> s_sa { get; set; }
public virtual DbSet<s_sd> s_sd { get; set; }
public virtual DbSet<s_so> s_so { get; set; }
public virtual DbSet<s_sq> s_sq { get; set; }
public virtual DbSet<t_st> t_st { get; set; }
}
}
【s_sa.cs 中的代码】
namespace MysqlTry
{
using System;
using System.Collections.Generic;
public partial class s_sa
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public s_sa()
{
this.s_sa1 = new HashSet<s_sa>();
this.s_sd = new HashSet<s_sd>();
this.s_so = new HashSet<s_so>();
}
public int SA_ID { get; set; }
public string SA_NM { get; set; }
public Nullable<int> PT_SA_ID { get; set; }
public string SA_FLG { get; set; }
public string OVER_ID { get; set; }
public string OVER_NM { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<s_sa> s_sa1 { get; set; }
public virtual s_sa s_sa2 { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<s_sd> s_sd { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<s_so> s_so { get; set; }
}
}
(3)模型图如下:
问题来了!
我在new的时候,能读取到数据库中的几个表,如下图
但是,为什么读取不到MySQL表中的内容呢???
提示:未能计算子级和函数求值需要运行所有线程。
研究了好几天也没找出来问题所在,请大神指教!
2016年12月10日补充
我找到了一个可疑的地方。
模型图没有生成代码,难道这就是无法实例化数据库上下文的原因?
请教大家。
应该是你连接字符串的问题,如果你的实体更改但是模型未更新也无法获取数据!
谢谢。
你说的很正确,就是连接字符串的问题。
问题已经解决了。
谢谢你。
你是在调试里取不到值吧..直接执行结果呢
因为在程序的后面我要用到mysql表中的内容,直接执行结果也是空呢。
把你的query tostring看下sql语句是啥。
没有query啊...囧...
@我叫我是王无敌: 什么叫没有query,一个iqueryable对象直接tostring啊。
还有你的图片呢?
@Daniel Cai:
辛苦你了,耐心的回复我这个菜鸟。
图片上传了好几次了,可是上传后再浏览时每次都加载不出来,我也不知道咋回事...
@我叫我是王无敌: 你拿qq截个图,然后另存下,再上传。
@Daniel Cai:
您好,按照您的方法重新上传了问题图片。
如果您有时间的话,还请您多多指教。
谢谢啦。
@我叫我是王无敌: 你没个query怎么会有数据呢?你至少某个DbSet.ToList一下吧。
@Daniel Cai:
最近刚开始接触这个,有些问题比较弱智了。
您那里有简单的示例给我参考下吗?
不胜感激。
@我叫我是王无敌:博客园里面关于ef的教程或者文章很多的。你找下db first的相关文章吧。
@Daniel Cai:
恩恩。
感激涕零。
祝您:身体健康,工作顺利。
@Daniel Cai:
我还是不知道,如何实例化数据库上下文...囧
@我叫我是王无敌: 这个你最好对照网上的例子做下,ef版本比较多,而且你又是mysql的,所以我不太好定位你的问题。要么你直接在园子里面找下相应的写文章的人直接发消息问下或者再开个帖子问下。