EF框架使用

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]就正常了,另一个倒是没影响。

原文地址:https://www.cnblogs.com/lbzhu/p/8023118.html