EF 学习笔记

时间:2022-12-05 16:30:54

1.EFcodeFirst如何使用存储过程!
public string GetCoupon(int type)
{
using (var db=new ProbabilityContext())
{
var coupon = new SqlParameter("@coupon", SqlDbType.VarChar, 50);
coupon.Direction = ParameterDirection.Output;
var parm = new SqlParameter[]
{
new SqlParameter("@TYPE", type),
coupon
};
string sql = @"EXEC [dbo].[GetCouponNo] @TYPE,@coupon OUTPUT";
db.Database.ExecuteSqlCommand(sql, parm);
return Convert.ToString(parm[1].Value);
}
}

2.EF使用SQL语句dbcontext.database.ExecuteSqlCommand

3.System.ArgumentException: 在 Range 对象中,Min (271)必须小于或等于 max&n:数据库查询字段为字符串型时,匹配的值需加单引号

code first Migration程序包控制管理台操作

1.install-Package EntityFramework -version 5.0.0安装entityframework

2.生成数据库:Enable-Migrations -EnableAutomaticMigrations

3.Add-Migration InitialCreate

4.Update-Database -Verbose

5.在数据库模型中添加City类,执行程序包管理器控制台语句:Add-Migration AddCity(新增的类名)

6.修改数据库中表City,删除其中字段ProvinceNo。在程序包管理器控制台中执行以下两条语句:Add-Migration ModifyCity Update-Database -Verbose

7.版本回溯: Update-Database –TargetMigration:"201309201643300_AddCity.cs"

8.生成数据库版本之间的Sql脚本:Update-Database -Script -SourceMigration:"201309201643300_AddCity.cs" -TargetMigration:"201309201708043_ModifyCity.cs"

9.1>、为指定的DbContext启用数据库迁移

PM> Enable-Migrations -ContextTypeName Portal.PortalContext

2>、设置是否允许自动迁移

Enable-Migrations

3>、Enable-Migrations指定项目名称

PM> Enable-Migrations -StartUpProjectName Portal
如果在“Package Manager Console”中选择了默认项目可以不设置“-StartUpProjectName”参数;如果多次执行此命令可以添加-Force参数。

4>、查看所执行的Sql语句 -Verbose指令

Update-Database -Verbose

“System.Data.Entity.Infrastructure.DbUpdateException”类型的异常在 EntityFrameWork

"

一般是ORM的映射与实际数据库表不完全一致,包括导航属性的别名,导致的该错误