1.安装对应Nuget包。
(1)MySql.Data包
(2)Entity Framework包。
2.创建对应的数据模型。
注意:数据模型属性要一一对应。可以使用Column和Table特性标记在表中的名称。
一定要一一对应。
3.配置文件要正确。
今天使用EF遇到两个异常:
1.System.Data.SqlTypes.SqlNullValueException:“数据为空。不能对 Null 值调用此方法或属性。”
解决方案:这个使用情景是在 context.Values.ToList(); 异常的原因是在数据库有字段DateTime类型,有一行Date列值为空,即DbNull,
所以EF查询时,应该是在转换过程中出现问题,不能将DbNull转化为DateTime类型。这个可以在数据模型加处理,或者数据库保证值能正确转换为日期。
2.System.Data.Entity.Core.OptimisticConcurrencyException:“Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.”
这个错误解决:原因是没有为模型设置Key,然后自增的主键也没有设置对用的Attribute。
在主键上加两个特性:
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Key]
public string userId{set;get;}
//做了做实验,关键是要加主键特性,加了[key]就正常了,另一个倒是没影响。