EF 学习笔记
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的映射与实际数据库表不完全一致,包括导航属性的别名,导致的该错误