上一篇讲了如何添加EF文件,现在介绍几点
一:如何更新EF数据库表和字段
找到上面添加的文件,双击打开 edmx文件
可以看到如图
找到一个空白地方 右击鼠标: 选择 从数据库更新模型
会出现没有添加过的数据表 ,在添加 里面是 未添加到ef中的表, 刷新 是已添加的表,需要更新字段
注意在写代码前需要添加两个引用EntityFramework跟EntityFramework.SqlServer
二:代码如何写增删改查代码:
查询:
实例化 这个需要注意默认是 数据库名称 +Entities
protected GTOWEntities gTOWEntities = new GTOWEntities();
// 查询
public List<AC_Fokas> EFQueryFokasList()
{
//GTOWEntities gTOWEntities = new GTOWEntities();
//List<AC_Fokas> foraslists = gTOWEntities.AC_Fokas.ToList();
List<AC_Fokas> foraslists = gTOWEntities.AC_Fokas.Where(s => s.FokasID == 1).ToList();
return foraslists;
}
// 新增
public int EFIntserFokas(List<AC_Fokas> entities)
{
int row = 0;
foreach (AC_Fokas entity in entities)
{
gTOWEntities.AC_Fokas.Add(entity);
if (gTOWEntities.SaveChanges() > 0)
{
row++;
}
}
return row;
}
//修改
public int EFUpdateFokas(List<AC_Fokas> entities)
{
int row = 0;
//GTOWEntities gTOWEntities = new GTOWEntities();
foreach (AC_Fokas entity in entities)
{
AC_Fokas updateFokas = gTOWEntities.AC_Fokas.SingleOrDefault(g => g.FokasID == 10);
updateFokas.ActivityID = 20;
updateFokas.FokasCount = 10;
updateFokas.FokasName = "试";
if (gTOWEntities.SaveChanges() > 0)
{
row++;
}
}
return row;
}
// 删除
public int EFDeleteFokas(Array array)
{
int row = 0;
foreach (string fokas in array)
{
AC_Fokas fokasmodel = gTOWEntities.AC_Fokas.SingleOrDefault(g => g.FokasID.ToString() == fokas);
gTOWEntities.AC_Fokas.Remove(fokasmodel);
if (gTOWEntities.SaveChanges() > 0)
{
row++;
}
else
{
// 记录日志 ,删除失败
}
}
return row;
}
三 app.Config 文件配置需要注意
注意:
1:需要添加 entityFramework 节点
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
2:需要链接数据库代码 放在节点connectionStrings中
<add name="GTOWEntities" connectionString="metadata=res://*/HotelModel.csdl|res://*/HotelModel.ssdl|res://*/HotelModel.msl;provider=System.Data.SqlClient;provider connection string="data source=10.3.90.15;initial catalog=GTOW;user id=test;password=Abcdef1234;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
3:需要添加 configSections节点,并且需要放在configuration的第一个。
例如:
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections
全文如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<connectionStrings>
<!-- dapper orm框架链接数据库方式 -->
<add name="ConnStr" connectionString="user id=test;pwd=Abcdef1234;data source=10.3.90.15;initial catalog=GTOW" providerName="System.Data.SqlClient" />
<!-- EF orm框架链接数据库方式 -->
<add name="GTOWEntities" connectionString="metadata=res://*/HotelModel.csdl|res://*/HotelModel.ssdl|res://*/HotelModel.msl;provider=System.Data.SqlClient;provider connection string="data source=10.3.90.15;initial catalog=GTOW;user id=test;password=Abcdef1234;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>