EF里单个实体的增查改删以及主从表关联数据的各种增删改查教程.docx
文本预览下载声明
EF里单个实体的增查改删以及主从表关联数据的各种增删改查
?本文目录
EF对单个实体的增查改删
增加单个实体
查询单个实体
修改单个实体
删除单个实体
EF里主从表关联数据的各种增删改查
增加(增加从表数据、增加主从表数据)
查询(根据主表找从表数据、根据从表找主表数据)
修改(修改从表的 HYPERLINK /Tag/waijian.html \t _blank 外键)
删除(删除主从表关系、删除主表数据、删除主从表数据、修改从表数据外键)
补充内容
SaveChanges方法提交多次操作
DbSet.Add方法返回当前实体
源码和系列文章导航
注:本章节多次演示了各种删除,要重复查看效果,需要解开 HYPERLINK /Tag/zhushi.html \t _blank 注释初始化数据方法。
一、EF对单个实体的增查改删
?增加单个实体:
/// summary
/// 增加单个实体
/// /summary
private static void AddMachuPicchu()
{
using (var context = new DbContexts.DataAccess.BreakAwayContext())
{
var mauchuPicchu = new DbContexts.Model.Destination
{
Name = Machu Picchu,
Country = Peru
};
context.Destinations.Add(mauchuPicchu);
context.SaveChanges();
}
}
产生的insert sql:
exec sp_executesql Ninsert [baga].[Locations]([LocationName], [Country], [Description], [Photo], [TravelWarnings], [ClimateInfo])
values (@0, @1, null, null, null, null)
select [LocationID]
from [baga].[Locations]
where @@ROWCOUNT 0 and [LocationID] = scope_identity(),N@0 nvarchar(200),@1 nvarchar(max) ,@0=NMachu Picchu,@1=NPeru
查询单个实体:
/// summary
/// 查询单个实体
/// /summary
private static void GetGreatBarrierReef()
{
using (var context = new DbContexts.DataAccess.BreakAwayContext())
{
var destination = context.Destinations.Find(4);
Console.WriteLine(destination.Name);
}
}
生成的select sql(find方法生成的查询sql略复杂点,普通的linq查询或者Lambda HYPERLINK /Tag/biaodashi.html \t _blank 表达式写法就简单许多了):
exec sp_executesql NSELECT
[Limit1].[LocationID] AS [LocationID],
[Limit1].[LocationName] AS [LocationName],
[Limit1].[Country] AS [Country],
[Limit1].[Description] AS [Description],
[Limit1].[Photo] AS [Photo],
[Limit1].[TravelWarnings] AS [TravelWarnings],
[Limit1].[ClimateInfo]
显示全部